繁体   English   中英

“结构”从何而来?

[英]Where does “struct” come from?

我试图更深入地了解值类型和System.ValueType

我的问题是当我右键单击int并单击“转到定义”时,我转到位于mscorlib.dll中的System.Int32

现在,当我右键单击struct或(枚举)并单击“转到定义”时,将显示错误:“无法导航至'struct'”

“结构”或“枚举”从何而来?

System.Int32是一种类型。

structenum都是关键字,而不是类型。

至于System.ValueType ,请看一下文档:

MSDN-ValueType类(系统)

它明确指出您不能创建从ValueType继承的类。 相反,您必须使用通过诸如structenum这样的关键字从类隐式继承的类型之一。

intSystem.Int32类型的别名,因此具有可浏览到的类型定义。

structenum不对应于类型; 它们只是C#语言中的关键字。

有趣的是,枚举引用了System.Enum ,所有enum类型都从此派生。 但是,用法是如此专业,编译器不允许您直接从中派生。

struct类型通过值而不是引用传递-就像在C#中传递非指针变量一样。 如果您不了解指针,那么何时使用structclass的细微差别就相当复杂,但是基本上所有值传递都是副本,而不是对原始副本的引用。

enum是一个类, enum包含有限的条目或标志列表,并且具有上述System.Emum中的一些帮助方法。 这对于诸如

enum direction { Up, Down, Left, Right }

否则,请参见类和结构以及枚举类型

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM