1
18
如果你想约束你的方法
从现在起,任何时候你想访问
你说过为了编译时的安全,你想避免使用强制转换;但我想,如果你想办法确保
我刚刚意识到下面描述的是你在问题中特别提到的东西 没有 想做什么。所以,我说,按照上面的说法。
显然,这是否有意义取决于你的具体情况。您一定要仔细考虑,因为带有这样的约束的类有时会导致您可能没有预料到的问题(例如
|
2
6
不,无法声明性地确保特定实例实现多个接口。 一个选项可能是使用泛型,尽管这实际上只适用于函数而不是属性。
|
3
2
可以定义接口,以便以类型安全的方式需要和使用它们的任意组合。关键是定义一个接口ISelf(Of Out T),它的一个成员Self是一个属性,通过该属性,对象将自身返回为T,然后对于每个接口IFoo,声明一个形式为IFoo(Of Out T)的对应泛型,它从IFoo和ISelf(Of T)继承。一个实现ISelf(Wowzo的)、IFoo(Wowzo的)、IBar(Wowzo的)和IBoz(Wowzo的)的类Wowzo将实现IFoo(IBar的)、IBar(IFoo的)、IFoo(IBoz的)(IBar的))、IFoo(IBar的)(IBar的)(IBoz的)(IBar的)等,并且在必要时可以被类型转换成任何这样的类型。如果Thing是IFoo(属于IBar(属于IBoz)),则可以直接将其用作IFoo,或将Thing.Self用作IBar,或将Thing.Self.Self用作IBoz。
|
4
2
NET中的变量有一个类型,类型可以实现多个接口。像这样:
但从您的问题来看,似乎您希望让一个变量实现多个接口,而不需要一个实现这些接口的类型。这实际上是不可能的,但是您可以动态生成一个实现接口的类型,并隐藏一个事实,即有一个真正的类型在发挥作用。嘲弄图书馆 moq 这用的是什么 Castle DynamicProxy |
Gabe Tucker · 无法在golang中分配接口对象指针 2 年前 |
randomDud · C#从另一个接口重写接口方法 2 年前 |
evilsushi · C#接口不允许成员类满足要求 6 年前 |