繁体   English   中英

C#预定义类型与原始类型?

[英]C# predefined types vs primitive types?

我最近一直在研究C#,有一种叫做“预定义类型”的东西。 我认为这是原始类型的另一个名称。 但我的朋友告诉我,那些安静的彼此不同。 只是感到困惑。

这些是相同但不同的名字吗? 还是那些完全不同?

Type.IsPrimitive文档页面中,有一个完整的基元类型列表:

基元类型是布尔,字节,SByte,Int16,UInt16,Int32,UInt32,Int64,UInt64,IntPtr,UIntPtr,Char,Double和Single。

第1.2.1节( 预定义类型 )明确区分了这些和预定义的引用类型:

预定义的引用类型是objectstring 类型object是所有其他类型的最终基本类型。 类型string用于表示Unicode字符串值。

所以我想很明显它们是不同的 - 至少在.NET术语中。

预定义是编译器特别支持的类型。 它们在System命名空间中使用.NET框架类型。 它们也被称为内置类型。

它们如何被编译器支持? 他们有自己的关键字。 例如, int关键字用于预定义System.Int32类型。 这意味着当您在C#中定义整数变量时,可以通过键入以下内容来执行此操作:

int myIntVar = 3;

代替

System.Int32 myIntVar = 3;

这只是合成的差异。

原始类型都是预定义的类型减去十进制类型。 我做了一个草图,证明了这一点:

在此输入图像描述

希望这可以帮助。

暂无
暂无

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

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