[英]How to implement Type.IsPrimitive Property of Type in Net Standard 1.3
[英]Is there any difference Value Type and Primitive Type, and Non Primitive Type and Reference Type. If yes then how all are different from each other
C#:Value Type和Primitive Type,Non Primitive Type和Reference Type有区别吗? 如果是,那么它们之间有何不同。 我在 C# 文档中阅读了它,但它可以消除我对原始类型和非原始类型的疑虑。
C# 规范ECMA-334没有定义术语Primitive Type 。 它确实有术语Simple Type 。 .Net库中还有Type.IsPrimitive
。
CLR (.Net) 规范ECMA-335也没有定义它,但它确实有Built-In Types ,但是它们与 C# 中的简单类型并不完全相同。
奇怪的是,ECMA-335 确实指定了简单类型,但仅适用于自定义属性构造函数,并且对应于
Type.IsPrimitive
。
值/引用类型与此有些正交。
值类型
这是一个 CLR (.Net) 术语,与 C# 中的struct
相同。它按值传递(复制/值语义)。
参考类型
这也是一个 CLR 术语,与class
中的 class 相同。它通过引用传递。
简单型
这是一个 C# 术语。 它只包括struct
,并且只有以下是简单类型:
sbyte
byte
short
ushort
int
uint
long
ulong
char
float
double
bool
decimal
。
请注意, string
和object
不在此列表中,即使它们在 C# 中具有别名。
Type.IsPrimitive
这与上面的列表相同,只是它不包括decimal
。 目前尚不清楚它在规范中应该代表什么。
内置类型
这是一个 CLR 术语,指的是与上面相同的列表,但还包括object
、 string
(两者都是引用类型)和TypedReference
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.