C#中使用Nullable类型

2008-08-18 11:25:09.0     浏览:1121     来源:中国IT实验室
关键词:  C#     Nullable  

可以看到,两个操作数只要有任何一个是null,得到的结果也一定是null,不管是加减还是乘除。当然,如果操作数不是null ,则结果还是按原来操作符运算得到的结果。

  在上面的代码中,如果ValC不是Nullable类型,情况会怎么样呢?如以下代码:

 int ValA = 10;
  int? ValB = 3;

  int ValC = ValA * ValB;

  // ValC 不是Nullable类型上面这段代码会抛出一个异常。ValA * ValB的结果是null,它不能被赋给一个非Nullable变量ValC。因为,会产生异常。 关系运算

  两个都是null值的Nullable变量被认为是相等的,而一个值为null的变量和其它任何非null值的变量都是不相等的。如下面示例代码:

 int abc = 123;
  int xyz = 890;

  int? def = null;

  int? uvw = 123;

  Comparison

  Result abc == xyz

  // false abc == def

  // false def == null

  // true

  abc == uvw

  // true uvw == null

  // false uvw != null

  // true

  在其它关系运算中,如果其中一个或两个操作数为null,则结果一定是false。如下面示例代码(仍然使用上面定义的变量):

  Comparison Resultabc >uvw

  // false, they are equal abc

  // false, def is null uvw

  // false, because def is null def >null

  // false, because right side is null uvw >null

  // false, because right side is null

  移除空值

  C#2.0同时也提供一个新操作符’??’用来合并空值。其语法格式如下:

  returnValue = first ?? second;

[上一页]   [第1页]   [第2页]   [第3页]   [第4页]   [下一页]