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) –