C#中的空对象使用
注:以String 类型为例
-
不允许使用未赋值的变量;
//未赋值情况
string str1;
string str2 = "%";
str2 = str1 + str2; //错误,使用了为赋值的局部变量str1,编译无法通过。
Console.WriteLine(str2);
结果:(编译时报错)
-
空对象(null)可以被使用,但不能被"."(点操作);
//使用空对象,但不"."点操作
string str1 = null; //赋值为null
string str2 = "%";
str2 = str1 + str2; //没有问题
Console.WriteLine(str2);
结果:%
//空对象"."操作
string str1 = null;
string str2 = "%";
str2 = str1.ToString() + str2; //抛出异常,null对象被点操作了
Console.WriteLine(str2);
结果:(运行时抛异常)
- 字符串的""不是null,只是值的长度为0(0个字符), 在内存中分配了空间。
//赋值为""情况
string str1 = string.Empty; //赋值为""
string str2 = "%";
str2 = str1 + str2; //没有问题
Console.WriteLine(str2);
结果:%
//赋值为""情况
string str1 = string.Empty; //赋值为""
string str2 = "%";
str2 = str1.ToString() + str2; //没问题
Console.WriteLine(str2);