所以这两个方法具有相同的签名但不同的约束
public static void Method<T>(ref T variable) where T : struct { }
public static void Method<T>(ref T variable) where T : class { }
但它们不能在单个类中定义,因为它们具有相同的签名。但在这种特殊情况下,它们是相互排斥的。 (除非我错了)
我知道你还可以设置额外的限制class
and struct
但你不能同时指定两者struct
and class
用同样的方法。那么为什么会编译失败呢?
The 通用约束不被视为方法签名的一部分(谢谢@Anthony用于链接)。
就编译器而言,你有一个复制方法 - 相同数量和类型的参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)