2016-11-04 108 views

回答

9

它们和new int?()完全一样。

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

int? x = null; 

例如。

我最经常需要这些表达式之一的时间是条件运算符,例如,

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

不能在该方案中使用null如编译器不能推断出表达式的类型。 (可以说这对语言来说是一种有益的补充,请介意你......)

+0

在我的情况是一个三元运算符,你例举了var x = Int32.TryParse(entityObj.Prop,out result)?结果:(int?)null;我不得不这样做,因为这个属性是以varchar形式存储在第三方数据库中的。谢谢@ jon-skeet –

0

基本上都是一样的。默认值为默认值。对于引用类型和可为空的类型,它给出的值为0时为null。如果将decalre整数设为可为空,则也可以将其分配给(int?)null。你可以检查IL代码也只是为了验证。

相关问题