default(int?)vs(int?)null之间的区别

时间:2016-11-04 17:30:54

标签: c#

使用default(int?)(int?)null分配变量是否有任何区别?

是一回事吗?

或者存在一些利弊,以各种方式使用?

2 个答案:

答案 0 :(得分:12)

它们与new int?()完全相同。

如果你只是分配一个变量,你通常根本不需要它。我只是使用:

int? x = null;

例如。

我经常需要其中一个表达式的时间是条件运算符,例如

int y = ...;
int? z = condition ? default(int?) : y;

您无法在该场景中使用null,因为编译器无法推断表达式的类型。 (可以说这对语言来说是一个有用的补充,请注意......)

答案 1 :(得分:0)

基本上两者都是一样的。默认值为默认值。对于引用类型和可空类型,它为值类型赋予null,它给出0.如果将整数十进制为可为空,则还可以将其赋值给(int?)null。您也可以检查IL代码以进行验证。