int i = 0和int i = default(int)之间是否存在性能差异?

Sam*_*djo 4 .net c# c#-4.0

我正在创建一个整数,我想在使用之前用0实例化它.

我先写了

int i = default(int);
Run Code Online (Sandbox Code Playgroud)

然后我删除它以替换另一个

int i = 0;
Run Code Online (Sandbox Code Playgroud)

我想知道我的选择是否是最好的迷你迷你表演.default()函数会在编译时增加指令吗?

Mar*_*lon 11

不,它们在编译时被解析并产生相同的IL.值类型将是0(或者false如果你有一个bool,但它仍然是0)并且引用类型是null.

  • 这可以在编译时解决,因为`T`将是已知/推断的. (2认同)