我只是想知道下两个语句之间有什么区别:
导致 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?"). }
只是为了好玩-我可以证明 bool 可以等于 int 值(嗯,怎么样? bool 只能是假的,或者真和 int 永远不可能)。
if (default(int?).ToString() == default(bool?).ToString()) //returns true because both are empty strings { Console.WriteLine("int = bool"); }
注意: default(int?) 返回 null。