【发布时间】:2012-12-31 12:00:38
【问题描述】:
正如标题所说,为什么 C# 中的字符串默认可以为空,但如果我想,比如 ints 或 doubles 为空,我必须明确地这么说?
【问题讨论】:
-
因为字符串是引用类型。
-
@JW。 - 我不认为这些问题是相同的。这比建议的副本更普遍。
正如标题所说,为什么 C# 中的字符串默认可以为空,但如果我想,比如 ints 或 doubles 为空,我必须明确地这么说?
【问题讨论】:
因为 string 是引用类型,派生自 object 并且 [大多数] 其他默认类型是值类型,隐式派生自 System.ValueType;
【讨论】:
struct”并不完全正确 - msdn.microsoft.com/en-us/library/s1ax56ch(v=vs.100).aspx:“所有值类型都隐式地从 System.ValueType 派生。”
System.ValueType 本身就是一个引用类型。例如,您可以说ValueType vt1 = null; 或ValueType vt2 = DateTime.Now; /* boxing */。但是DateTime 是值类型的一个例子。