所以这两种方法具有相同的签名,但不同的限制。
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
。那么为什么编译会失败呢?