可能重複:
The type ‘string’ must be a non-nullable type in order to use it as parameter T in the generic type or method ‘System.Nullable<T>’爲什麼字符串可以爲空?
正如標題所說,爲什麼字符串默認在C#中爲空的,但是如果我想,說,整數或雙打爲空,我有明確地這樣說?
可能重複:
The type ‘string’ must be a non-nullable type in order to use it as parameter T in the generic type or method ‘System.Nullable<T>’爲什麼字符串可以爲空?
正如標題所說,爲什麼字符串默認在C#中爲空的,但是如果我想,說,整數或雙打爲空,我有明確地這樣說?
因爲字符串是一個引用類型,所以從object
和[大多數]其他默認類型派生的值類型,從System.ValueType隱式派生;
+1。 「從'struct'派生」並不完全正確 - http://msdn.microsoft.com/en-us/library/s1ax56ch(v=vs.100).aspx:「所有值類型都是從系統中隱式派生的。值類型。」 –
並且[ValueType](http://msdn.microsoft.com/zh-cn/library/system.valuetype.aspx)也從對象派生,但這並不意味着它是引用類型。你的陳述大部分是準確的,但我會考慮改寫一下 – psubsee2003
好點,所提供的鏈接肯定比我的單行更完整。 –
因爲一個字符串是一個引用類型。 –
@JW。 - 我不認爲問題是相同的。這比擬議的副本要普遍得多。 – JDB