【发布时间】:2013-06-17 12:32:01
【问题描述】:
今天认识了一个新东西,我们可以使用new 操作符来创建整数,如下所示
int num = new int();
现在我想知道如果我以这种方式创建一个整数,那么生成的整数将是值类型还是引用类型?我想这将是一个值类型。我试过下面的代码
int num1 = 10;
int num2 = new int();
int num3;
num1 = num2;
num2 = num3;
我收到以下构建错误:
使用未赋值的局部变量“num3”
我知道为什么会出现此构建错误。但我想知道何时以及如何使用new int() 以及它究竟是如何工作的?任何人都可以对此有所了解吗?
感谢和问候:)
【问题讨论】:
-
int i = new int()和int i = 0产生完全相同的 IL,因此仅从编译器的角度来看没有区别。字面符号似乎更友好,所以我建议坚持使用它,不要为显式调用int构造函数而烦恼。 -
default(int)也与new int()和0相同(在此上下文中)。据我了解,结构的默认构造函数(new T()或default(T))只是构成结构的字节中的所有零。使用int,表示0。
标签: c# .net new-operator instantiation value-type