NULL,,String.Empty三者在C#中的区别
(1)NULL
null 關(guān)鍵字是表示不引用任何對象的空引用的文字值。null 是引用類型變量的默認(rèn)值。那么也只有引用型的變量可以為NULL,如果int i=null,的話,是不可以的,因?yàn)镮nt是值類型的。
(2)""和String.Empty
?? 這兩個(gè)都是表示空字符串。只不過""理論上重新開辟內(nèi)存空間,而String.Empty指向一處。不過優(yōu)化器會(huì)優(yōu)化的!
?? string.Empty不分配存儲空間, ""分配一個(gè)長度為空的存儲空間,所以一般用string.Empty,為了以后跨平臺,還是用string.empty。
在C# 中,大多數(shù)情況下 "" 和 string.Empty 可以互換使用。比如:
string s = "";
string s2 = string.Empty;
if (s == string.Empty) {//} if語句成立
(3)判定為空字符串的幾種寫法,按照性能從高到低的順序是:
s.Length == 0 優(yōu)于 s == string.Empty 優(yōu)于 s == ""
注意:
?? 1.string str1="" 和 string str2=null 的區(qū)別。
str1是一個(gè)空字符串,空字符串是一個(gè)特殊的字符串,只不過這個(gè)字符串的值為空,在內(nèi)存中是有準(zhǔn)確的指向的,
string str2=null,這樣定義后,只是定義了一個(gè)string 類的引用,str2并沒有指向任何地方,在使用前如果不實(shí)例化的話,都將報(bào)錯(cuò)。
轉(zhuǎn)載于:https://www.cnblogs.com/liuyaozhi/p/5809521.html
總結(jié)
以上是生活随笔為你收集整理的NULL,,String.Empty三者在C#中的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于服务程序生成文件存放在哪的问题
- 下一篇: List类集接口-ArrayList