值类型原本是不能为null的,但如果确实有需要,可以使用可空类型。用法如下:
1,定义结构体StructA;
2,声明可空类型:StructA? mSA=null;
注意问号“?”的用法
struct是值类型,怎么能够判断它是否为空呢,不是一回事。
看看这个微软官方网站吧http://msdn.microsoft.com/zh-cn/library/s1ax56ch(v=VS.80).aspx
与引用类型不同,值类型不可能包含 null 值。然而,可空类型功能允许将 null 赋给值类型。
每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。有关值类型默认值的信息,请参见默认值表。
false |
|
0 |
|
'\0' |
|
0.0M |
|
0.0D |
|
表达式 (E)0 产生的值,其中 E 为 enum 标识符。 |
|
0.0F |
|
0 |
|
0L |
|
0 |
|
0 |
|
将所有的值类型字段设置为默认值并将所有的引用类型字段设置为 null 时产生的值。 |
|
0 |
|
0 |
|
0 |
总之:值类型不能为空,会被赋默认值!!!!!!!!!!!!
值类型不可以赋值为空
我的处理就是全部用string类型表示,判断空就方便多了