c#中的int是什么?
什么是C中的c#中的int是什么?,c#,value-type,reference-type,C#,Value Type,Reference Type,什么是C中的int?它是关键字还是从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
?它是关键字还是从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;
int
是一个关键字,它是值类型(struct
)System.Int32
的别名
作为常规值类型,我相信它的继承是System.Object
->System.ValueType
->System.Int32
因为
int
有文字符号,就像字符串和其他数字类型一样,您可以创建它的实例,而无需new
int
是值类型(struct
)System.Int32
的别名关键字
作为常规值类型,我相信它的继承是System.Object
->System.ValueType
->System.Int32
因为int
有文字符号,就像字符串和其他数字类型一样,您可以在不使用new
的情况下创建它的实例。int是CTS typeSystem.Int32
的别名
阅读Eric Lippert发布的SO答案-int是CTS类型的别名System.Int32
阅读Eric Lippert发布的SO答案-用代码解释代码:
Console.WriteLine(typeof(int) == typeof(Int32)); // Outputs: True
Console.WriteLine(typeof(int).Name); // Outputs: Int32
用代码解释代码:
Console.WriteLine(typeof(int) == typeof(Int32)); // Outputs: True
Console.WriteLine(typeof(int).Name); // Outputs: Int32
谁说“结构”或“值类型”不能有方法?这是一些Java废话:)
int
是System.Int32
,它是一种struct
-类型。(为了使生活更简单,编译器知道各种“文字”构造,如整数、浮点值和字符串。但是,它是一个固定的集合。例如,GUID没有“文字”,因此需要new GUID(string)
。)所有值类型都可以有方法,Java是一个愚蠢的例外。inti=8
编译的原因与string foo=“bar”
编译的原因相同8
是类型int
的文本,就像“bar”
是类型字符串的文本一样。如果int是结构系统的别名。Int32
,那么它如何从系统继承。Object
类???@user1232138每个结构
都是值类型
的子类型,值类型
是对象
的子类型。与类
不同,不能使用结构
指定其他子类型(尽管可以指定接口)。这就是在C#/CLR中定义类型树的方式。当然,这不是全部<代码>对象x=1
“框”(关键字)例如int
值。谁说“结构”或“值类型”不能有方法?这是一些Java废话:)int
是System.Int32
,它是一种struct
-类型。(为了使生活更简单,编译器知道各种“文字”构造,如整数、浮点值和字符串。但是,它是一个固定的集合。例如,GUID没有“文字”,因此需要new GUID(string)
。)所有值类型都可以有方法,Java是一个愚蠢的例外。inti=8
编译的原因与string foo=“bar”
编译的原因相同8
是类型int
的文本,就像“bar”
是类型字符串的文本一样。如果int是结构系统的别名。Int32
,那么它如何从系统继承。Object
类???@user1232138每个结构
都是值类型
的子类型,值类型
是对象
的子类型。与类
不同,不能使用结构
指定其他子类型(尽管可以指定接口)。这就是在C#/CLR中定义类型树的方式。当然,这不是全部<例如,code>object x=1
“box”(关键字)值int
。如果int是结构System.Int32
的别名,那么它如何从系统继承。object
类??如果int是结构System.Int32
的别名,那么它如何从系统.Object
类继承?如果int是结构系统.Int32的别名,那么它如何从系统.Object
类继承???@user1232138:所有值类型都将系统.Object
作为间接基类。如果int是结构系统.Int32的别名,那么它如何从System.Object
类中继承???@user1232138:所有值类型都将System.Object
作为间接基类。