5

我最近一直在学习 C#,有一个东西叫做“预定义类型”。我认为它是原始类型的另一个名称。但我的朋友告诉我,它们彼此完全不同。刚弄糊涂了。

这两个名字是同一个东西,还是完全不同?

4

2 回答 2

10

Type.IsPrimitive 文档页面中有原始类型的完整列表:

基本类型是 Boolean、Byte、SByte、Int16、UInt16、Int32、UInt32、Int64、UInt64、IntPtr、UIntPtr、Char、Double 和 Single。

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

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

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

于 2012-11-20T00:25:17.103 回答
3

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

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

int myIntVar = 3;

代替

System.Int32 myIntVar = 3;

不过,这只是句法上的差异。

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

在此处输入图像描述

希望这可以帮助。

于 2017-10-21T18:28:00.647 回答