我只是想知道是什麼樣的兩個下語句之間的區別:爲什麼空語句ToString()返回一個空字符串?
導致一個NullReferenceException - 這是確定。
object test1 = default(int?); object result = test1.ToString();
返回一個空字符串「」,爲什麼?
object test2 = default(int?).ToString();
這是一樣的2
int? test3 = null; if (test3.ToString() == string.Empty) //returns true { Console.WriteLine("int? = String.Empty, isn't it strange?"). }
而只是爲了好玩 - 我可以證明,布爾可以等於int值(嗯怎麼布爾只能是虛假的,或真?和int永遠不會是)。
if (default(int?).ToString() == default(bool?).ToString()) //returns true because both are empty strings { Console.WriteLine("int = bool"); }
注:(?INT)默認返回null。
3中的「i」是什麼? – dotNET
'Nullable'是一個值類型,實際上不能爲null。它只是用一種方式編程,以便'HasValue'屬性爲'false'時,與'null'的比較返回true。 (並將其設置爲'null'將設置'HasValue' proeprty爲'false') –
dialer
http://stackoverflow.com/questions/11446838/why-does-tostring-on-a-null-string-cause-a -null-error-when-tostring-works?rq = 1 – usha