Vij*_*dra 3 c# asp.net string null
我想知道哪个是在C#中声明字符串的首选方法:
string strEmpty = String.Empty;
Run Code Online (Sandbox Code Playgroud)
要么
string strNull = null;
Run Code Online (Sandbox Code Playgroud)
哪种做法更好或这些陈述之间有什么区别.
第一个答案使字符串的值成为一个实际的空字符串.将其指定为null会使指针指向任何内容.这意味着如果您尝试执行strEmpty.Function(),则在第二种情况下不起作用.
第一个最初需要更多内存,但更清晰.
正确的答案取决于你接下来会做什么.如果你只是要重新分配字符串,我会成功null.如果你打算对字符串做事(执行函数,追加等),我会做的string.empty.
区别在于语义.
每当你在代码中找到一个NULL指针时,就意味着什么都没有.这意味着它尚未初始化为任何东西,因此您无法使用它.
另一方面,空字符串是一个字符串.它已被初始化,任何查看代码的程序员都会将该字符串视为要使用的有效对象.
例如,考虑将相对URL存储在字符串中.如果您发现该字符串为空,您会认为它指向根路径.但是如果它是NULL,你应该认为它不是一个有效的变量 - 它没有被初始化,你不应该使用它.
基于此,您将采用不同的路径 - 空URL表示与NULL变量非常不同的东西.