Skip to main content
黑话筒

可以为null的值类型

昨天看Creating a Data Access Layer文章时,里面讲到了强类型的DataSet,由系统自动生成的代码里面,我发现每个值类型Value Type值类型,相对于Reference Type引用类型)的参数是这么声明的:

int? ProductID, string? ProductName

很奇怪,到MSDN上才发现了"??"操作符,这个操作符是这个意思:

在声明变量的时候,可以为值类型的变量赋值null,在作为二元操作符时,用来判断左边变量是否为null,如果为null,就将右边的变量赋给=前面的变量。 举个例子:

int? IntType = null; // 是正确的
int IntType = null; // 在编译时就不会通过

int? Para1 = null;
int Para2 = 8;
int Result = Para1 ?? Para2; // 此时的意思是如果Para1为null,则Result == Para2