使用default(int?)
或(int?)null
分配变量是否有任何区别?
是一回事吗?
或者存在一些利弊,以各种方式使用?
答案 0 :(得分:12)
它们与new int?()
完全相同。
如果你只是分配一个变量,你通常根本不需要它。我只是使用:
int? x = null;
例如。
我经常需要其中一个表达式的时间是条件运算符,例如
int y = ...;
int? z = condition ? default(int?) : y;
您无法在该场景中使用null
,因为编译器无法推断表达式的类型。 (可以说这对语言来说是一个有用的补充,请注意......)
答案 1 :(得分:0)
基本上两者都是一样的。默认值为默认值。对于引用类型和可空类型,它为值类型赋予null,它给出0.如果将整数十进制为可为空,则还可以将其赋值给(int?)null
。您也可以检查IL代码以进行验证。