在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1:可空值类型 可空值类型是System.Nullable<T>这个struct的类型 可空值类型除了可以正确的表示其底层数据类型(也就是T)的范围,还可以表示null 1.1:如下,bool值类型可以为True和False,但不能为Null Nullable<bool>除了可以为True和False外,还可以为Null
1.2:Nullable写起来太麻烦,这里有简便写法,只需要在类型后面加个?即可,如下
2:Null,空,空白string string name = "张三"; //正常字符串,有值非空 string name1 = null; //值为null string name2 = ""; //是个空字符串 string name3 = " ";//空白字符串,双引号之间是空格或者Tab键 2.1:如何判断Null,空,空白string 2.1.1:判断Null string name = null; if (name == null) { //... } 2.1.2:判断空,双引号之间啥也没有那种,下面的这个方法同样也包含了字符串为Null的这种情况 string name2 = ""; if (string.IsNullOrEmpty(name2)) { //... } 2.1.3:判断空白字符串,也可能是空字符串,也可能是Null字符串,就用下面这个 string name3 = " "; if (string.IsNullOrWhiteSpace(name3)) { //... } 3:Nullable<T>的常用属性和方法 .HasValue //如果值为null,结果就是false; 否则:true
.Value //底层值类型的值,如果Nullable<T>的值是Null,就会报异常
.GetValueOrDefault() //底层值类型的值或该类型的默认值,意思就是如果你的值不为Null,就会把值返回回来;如果是Null,就返回这个值的默认值,int的默认值是0,所以第二个图返回0
.GetValueOrDefault(默认值)//底层值类型的值或指定的默认值,意思就是可以指定默认值,不为Null就返回底层值类型;如果为Null就返回默认值
4:Nullable<T>转换 T ---> Nullable<T> 隐式转换,因为后面的比前面的值的范围大,多了一个Null值 如下图:从范围小的a转换成范围大的b就直接隐式转换,前提这个范围大的要包含范围小的类型才可以
Nullable<T> ---> T ,反而言之,就得显示转换,如图一错二对:
如果值为Null,就会报异常,如图:
5:检查Null的操作符 条件操作符(三元运算符)?:
Null合并操作符 ?? 如果左边a不为Null,返回左边a的值;如果a为Null,返回b的值
Null条件操作符 ?.
Null条件操作符还有 ?[ 针对索引表示法的Null条件操作符
6:string str = null,string str1 = “”,string str2 = string.empty;的区别 string str = null;在栈上有地址,但在堆上没有空间;null是string的默认值 string str1 =“”:空字符串,在栈和堆都有地址,并且堆上地址为空 string str2 = string.empty;它和str1差不多,在堆栈都为空间,不同就是在语法级上对str1的优化
|
请发表评论