我想确保在编译时永远不会在同一个类上找到两个接口,类似于AttributeUsage在编译时检查自定义属性的方式。
e.g:
[InterfaceUsage(MutuallyExclusive = typeof(B))]
interface A {
//...
}
interface B {
//...
}
class C : A, B { //should throw an error on compile time
//...
}
我显然可以在运行时使用反射来完成此操作,但我对编译时解决方案很感兴趣。
我认为一个可能不存在开箱即用 - 但有没有办法创建一个在编译时运行的自定义属性,就像AttributeUsage一样?
答案 0 :(得分:5)
另一种方法可能是将它们更改为抽象类。
答案 1 :(得分:2)
如何为他们提供两个具有相同签名但不兼容的返回类型的方法?