2013-01-17 89 views
4

可能重複:
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#中爲空的,但是如果我想,說,整數或雙打爲空,我有明確地這樣說?

+2

因爲一個字符串是一個引用類型。 –

+1

@JW。 - 我不認爲問題是相同的。這比擬議的副本要普遍得多。 – JDB

回答

10

因爲字符串是一個引用類型,所以從object和[大多數]其他默認類型派生的值類型,從System.ValueType隱式派生;

+4

+1。 「從'struct'派生」並不完全正確 - http://msdn.microsoft.com/en-us/library/s1ax56ch(v=vs.100).aspx:「所有值類型都是從系統中隱式派生的。值類型。」 –

+0

並且[ValueType](http://msdn.microsoft.com/zh-cn/library/system.valuetype.aspx)也從對象派生,但這並不意味着它是引用類型。你的陳述大部分是準確的,但我會考慮改寫一下 – psubsee2003

+0

好點,所提供的鏈接肯定比我的單行更完整。 –

相關問題