Mutally排他性的限制所以這兩種方法具有相同簽名但不同的約束兩種方法具有相同的簽名
public static void Method<T>(ref T variable) where T : struct { }
public static void Method<T>(ref T variable) where T : class { }
但他們不能在一個類中定義,因爲它們具有相同的簽名。但在這種特殊情況下,它們是相互排斥的。 (除非我錯了)
我明白了,你可以把附加的約束之外class
和struct
,但你不能在同一方法同時指定struct
和class
。那麼爲什麼這會失敗呢?
你自己說過,*因爲他們有相同的簽名*。 –
您是否有解決方法,因爲如果您需要它,我已經想到了一個解決方案。 – bluevector
[約束不是簽名的一部分。](http://blogs.msdn.com/b/ericlippert/archive/2009/12/10/constraints-are-not-part-of-the-signature.aspx) –