是否需要将类的成员字符串变量设置为""?

CJ7*_*CJ7 3 c# string

是否需要将类的字符串成员变量设置为""?会不会null,除非你做到这一点?

Mat*_*ell 19

字符串为null的原因是因为字符串是引用类型,并且所有引用类型的默认值都为null(即没有引用).

最好的参考是默认值表(请记住默认情况下所有引用类型都设置为null),但下面的一些示例提供了一个不错的主意:

string a = default(string); // null
String b = default(String); // null
int c = default(int); // 0
int? d = default(int?); // null
Object e = default(object); // null
double f = default(double); // 0.0

// an instance of someStruct with fields set to default(theirType)
someStruct g = default(someStruct); 
Run Code Online (Sandbox Code Playgroud)

字符串类似似乎是一种值类型,因为它看起来很原始.此外,它是不可变的意味着您永远不能修改字符串,而只是设置字符串符号以指向新字符串"值"(它们自己是引用),给人的印象是字符串是值类型.

例如:

 string a = "boo"; 
 /* Mem contains reference to "boo" and symbol 'a' => reference("boo") */

 a = "gah";
 /* Mem contains references to "boo" and "gah". symbol 'a' -> reference("gah") */
Run Code Online (Sandbox Code Playgroud)

有关字符串的更多信息,请参阅此文章.

并且不要忘记默认值表.


Jer*_*ing 6

是的,字符串的默认值为null.


jea*_*n27 6

字符串的默认值为null.