1

intC# 中有什么?它是关键字,还是从system.ValueTypes派生的类?如果它是关键字,那么以下行如何编译

int i = new int(); // If int is not a class then how does it have a default constructor

Console.WriteLine(i.ToString()); // If int is not a class then how does it have member functions

如果int是一个类,那么为什么不需要总是用 初始化它new?以下行如何编译?

int i = 8;
4

3 回答 3

5

int是CTS 类型结构别名System.Int32

阅读 Eric Lippert 发布的 SO 答案 - ValueTypes 如何从 Object (ReferenceType) 派生并且仍然是 ValueTypes?

于 2012-07-21T04:09:54.020 回答
3

int是一个关键字,它是值类型 ( struct)的别名System.Int32

作为常规值类型,我相信它的继承是System.Object-> System.ValueType-> System.Int32

因为int具有文字符号,如字符串和其他数字类型,您可以创建它的实例而无需new.

于 2012-07-21T04:09:46.530 回答
0

用代码解释代码:

Console.WriteLine(typeof(int) == typeof(Int32)); // Outputs: True
Console.WriteLine(typeof(int).Name); // Outputs: Int32
于 2012-07-21T04:14:28.667 回答