gpt4 book ai didi

c# - 在哪里以及为什么使用 int a=new int?

转载 作者:IT王子 更新时间:2023-10-29 04:10:26 25 4
gpt4 key购买 nike

只是好奇,有什么区别:

int A = 100;

int A = new int();  

我知道 new 用于在堆上分配内存..但我真的不明白这里的上下文。

最佳答案

static void Main()
{
int A = new int();
int B = default(int);
int C = 100;
Console.Read();
}

编译为

.method private hidebysig static void  Main() cil managed
{
.entrypoint
// Code size 15 (0xf)
.maxstack 1
.locals init ([0] int32 A,
[1] int32 B,
[2] int32 C)
IL_0000: nop
IL_0001: ldc.i4.0
IL_0002: stloc.0
IL_0003: ldc.i4.0
IL_0004: stloc.1
IL_0005: ldc.i4.s 100
IL_0007: stloc.2
IL_0008: call int32 [mscorlib]System.Console::Read()
IL_000d: pop
IL_000e: ret
} // end of method Program::Main

如您所见,第一个只是对其进行初始化,第二个是完全相同,第三个是初始化并设置为 100。至于生成的 IL 代码,它们都在一行中初始化

所以

int A = new int();

相同
int A = default(int);

关于c# - 在哪里以及为什么使用 int a=new int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5746873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com