[英]Where does “struct” come from?
我试图更深入地了解值类型和System.ValueType
我的问题是当我右键单击int并单击“转到定义”时,我转到位于mscorlib.dll中的System.Int32
现在,当我右键单击struct或(枚举)并单击“转到定义”时,将显示错误:“无法导航至'struct'”
“结构”或“枚举”从何而来?
System.Int32
是一种类型。
struct
和enum
都是关键字,而不是类型。
至于System.ValueType
,请看一下文档:
它明确指出您不能创建从ValueType
继承的类。 相反,您必须使用通过诸如struct
和enum
这样的关键字从类隐式继承的类型之一。
int
是System.Int32
类型的别名,因此具有可浏览到的类型定义。
struct
和enum
不对应于类型; 它们只是C#语言中的关键字。
有趣的是,枚举引用了System.Enum ,所有enum
类型都从此派生。 但是,用法是如此专业,编译器不允许您直接从中派生。
struct
类型通过值而不是引用传递-就像在C#中传递非指针变量一样。 如果您不了解指针,那么何时使用struct
或class
的细微差别就相当复杂,但是基本上所有值传递都是副本,而不是对原始副本的引用。
enum
是一个类, enum
包含有限的条目或标志列表,并且具有上述System.Emum中的一些帮助方法。 这对于诸如
enum direction { Up, Down, Left, Right }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.