int,float等基础类型终于可以赋为null了
好象有面向对象编程语言以来,对于基础类型数据,如int、float等,不支持为其赋值为null,我们为了将其表示为null,通常是赋予一个特定的值,如int则赋值为-1。现在在c#2.0中有一个很好的解决方法:就是使用基础类型+?,比如int?,float?,下面是msdn的相关文章:
ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_csref/html/088b1f0d-c1af-4fe1-b4b8-196fd5ea9132.htm
如果 ?? 运算符的左操作数非空,该运算符将返回左操作数,否则返回右操作数。
<img class="toggle" alt="Collapse 图像" name="toggleSwitch">备注
<div class="section" name="collapseableSection">可空类型可以包含值,或者可以是未定义的。?? 运算符定义当可空类型分配给非可空类型时返回的默认值。如果在将可空类型分配给非可空类型时不使用 ?? 运算符,将生成编译时错误。如果使用强制转换,并且当前未定义可空类型,将发生 InvalidOperationException 异常。
有关更多信息,请参见可为空的类型(C# 编程指南)。
页:
[1]