有人知道使用以下哪种方式声明整数变量是否存在差异:
var i = default(int)
对抗
var i = 0;
也许有些微小的性能差异或其他的不同之处?
感谢大家!
有人知道使用以下哪种方式声明整数变量是否存在差异:
var i = default(int)
对抗
var i = 0;
也许有些微小的性能差异或其他的不同之处?
感谢大家!
这是 var i = default(int)
代码的IL:
IL_0001: ldc.i4.0
IL_0002: stloc.0 // i
这里是 var i = 0;
代码的中间语言(IL):
IL_0001: ldc.i4.0
IL_0002: stloc.0 // i
看起来这归结为个人偏好。
var i = new int()
的意思是创建一个新的整数变量i。 - Cihan Yakardefault
,因为在泛型类和方法中,一个问题是当您事先不知道参数化类型 T 的以下内容时如何为其分配默认值。
尽管可以将其用于诸如 int 之类的基本类型,但不建议这样做,它存在的整个理由是其他的。
请使用后者,因为它更易读、更合乎逻辑。
您可能还想查看关于default
的此链接。从功能方面来看,没有区别,因为0
是int
类型的默认值。
就性能而言,我相信default(int)
在编译时会被替换为0,因此只可能在编译时产生轻微的性能损失,而不是运行时。
另一个因素可能是,如果编译器中的(默认)定义已更改,则您的项目可能会发生故障。
default(int)
更改为直接使用default
。
参考https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/default-values-table。int a = default(int);
从C# 7.1开始,您可以使用默认字面量来初始化变量,并将其设置为其类型的默认值:
int a = default;