MSDN định nghĩa System.Enum như một lớp trừu tượng:Tại sao tôi không thể lấy được từ lớp trừu tượng System.Enum?
[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Enum : ValueType, IComparable, IFormattable, IConvertible
Và cũng MSDN làm cho tuyên bố như vậy về lớp trừu tượng:
Một lớp trừu tượng không thể khởi tạo. Mục đích của lớp trừu tượng là cung cấp một định nghĩa phổ biến của một lớp cơ sở mà nhiều lớp dẫn xuất có thể chia sẻ.
Nhưng tôi không thể lấy được từ System.Enum. Theo Jeffery Richter trong cuốn sách của mình "CLR via C#", nó là trình biên dịch C# mà cấm đạo hàm đó.
Và tôi đã kiểm tra các thành viên của System.Enum, hầu hết trong số đó là tĩnh, hợp lý cho nó không thể được khởi tạo và phương thức tĩnh không cần một cá thể đối tượng để gọi. Nhưng cũng có một số phương thức thể hiện, chẳng hạn GetHashCode() và GetTypeCode().
Vì vậy, câu hỏi đầu tiên của tôi là, nếu System.Enum không có thể được khởi tạo hoặc có nguồn gốc, làm thế nào có thể những phương pháp dụ được gọi? Đây không phải là một loại nghịch lý?
Tôi biết tôi có thể sử dụng phương thức sau để gọi các phương thức dụ này, nhưng tại sao? Có một số loại của System.Enum hoặc loại có nguồn gốc đối tượng dụ được tạo? Khi nào? và ai?
public enum Days:byte { Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday };
Days d = Days.Friday;
d.GetTypeCode();
d.GetHashCode();
Ngày có nguồn gốc từ enum ... sự nhầm lẫn của bạn là gì? –