shicl个人天地

程序员的学习历程

博客园 首页 新随笔 联系 订阅 管理

 在项目中遇到一个问题,int型的变量值为null,解决办法如下:

1.null 关键字是表示不引用任何对象的空引用的文字值。null 是引用类型变量的默认值。
如果您试图如此赋值
int i=null; //this is error .
 
2.可空类型
   System.Nullable 结构的实例。可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。
   注意点:
   a.只是针对值类型,引用类型不适用。
   b.语法 T? 是 System.Nullable<T> 的简写。
   c.使用HasValue检测是否为空。
   d.当可空类型的变量为null时,变量的HasValue为false。此时使用Value 属性将引发异常   (System.InvalidOperationException)。
   e.当可空类型的变量不为null时,变量的HasValue为true。此时可使用Value 属性。
     System.Nullable.GetValueOrDefault 属性返回该值类型所赋的值或默认值,

     注意:System.Nullable.GetValueOrDefault属性可能不是您想要的值。例如:
          decimal? dec = null;
          Console.WriteLine (dec.GetValueOrDefault());
          输出为0
   f.使用 ?? 运算符分配默认值,例如:
       Nullable<int> int1 = null;
       int int2 = int1 ?? 0;
       int2的值为0
   g.不允许使用嵌套的可空类型,否则将不能编译。


注:1.学了N种语言的时候,很容易忽略了这种小问题。
    2.我们是否能写出c#所有的值类型,并对变量初始化呢,要保证不出错。(不许用类型转换)

   我上网的时间有限,排版很差。(以后有时间重新组织一下版面)

posted on 2007-11-18 13:25  SHICL  阅读(1287)  评论(0)    收藏  举报