null与空字符串主要区别如下:
1,null不指向任何对象,相当于没有任何值;而“”代表一个长度为0的字符串
2,null不分配内存空间;而“”会分配内存空间
例如:
string str = null;//定义可空类型变量
str = str ?? "";//使用合并运算符
Console.WriteLine(str); //1000
Console.ReadLine();
结果是 :“”(控制台输出为空)
注:
(1)单问号? 可用于对int,double,bool等无法直接赋值为null的数据类型进行null的赋值
(2)双问号?? null合并运算符,如果此运算符的左操作数不为 null,则此运算符将返回左操作数(左边表达式);否则当左操作数为 null,返回右操作数(右边表达式)