Nar*_*dra 3 .net c# instantiation value-type new-operator
今天要了解一个新事物,我们可以使用new运算符创建整数,如下所示
int num = new int();
Run Code Online (Sandbox Code Playgroud)
现在我想知道我是否以这种方式创建一个整数,然后生成的整数将是值类型或引用类型?我想这将是一种价值类型.我尝试了下面的代码
int num1 = 10;
int num2 = new int();
int num3;
num1 = num2;
num2 = num3;
Run Code Online (Sandbox Code Playgroud)
我得到了以下构建错误:
使用未分配的局部变量'num3'
我知道为什么会出现这个构建错误.但我想知道何时以及如何使用new int()以及这究竟是如何工作的?有人可以对此有所了解吗?
感谢和问候 :)
int i = new int();
Run Code Online (Sandbox Code Playgroud)
等于
int i = 0;
Run Code Online (Sandbox Code Playgroud)
它们之间没有区别.它们将生成相同的IL代码.
// Code size 4 (0x4)
.maxstack 1
.locals init ([0] int32 num)
IL_0000: nop
IL_0001: ldc.i4.0
IL_0002: stloc.0
IL_0003: ret
Run Code Online (Sandbox Code Playgroud)
从 Using Constructors (C# Programming Guide)
结构类型的构造函数类似于类构造函数,但结构不能包含显式默认构造函数,因为编译器会自动提供一个构造函数.此构造函数将结构中的每个字段初始化为默认值.
整数的默认值是0.检查更多Default Values Table
| 归档时间: |
|
| 查看次数: |
4101 次 |
| 最近记录: |