我正在尝试编写一个接口,例如...
interface MyInterface
{
MyObject Set(REGISTER register, PIN pin);
}
这两个REGISTER
和PIN
是枚举。我遇到的问题是在REGISTER
中定义的,MyBaseClass
并PIN
在中定义的MyDerivedClass
。我可以MyBaseClass.REGISTER
在界面中使用类似的东西,但这不适用于PIN
。的每个派生MyBaseClass
将具有不同的枚举PIN
。我在SO上找到了另一个答案,这似乎可以部分解决问题,但是目前尚不清楚我应该如何在中实现该功能MyDerivedClass
。有人对此有解决方案吗?
尝试使用泛型:
interface MyInterface<TPin>
{
MyObject Set(Register register, TPin pin);
}
在每个派生类中实现它时,必须告诉它pin枚举的类型是什么:
class MyImplementation : MyInterface<MyPin>
{
MyObject Set(Register register, MyPin pin)
{
// ...
}
}
这意味着您不能具有MyInterface
对象列表,但是可以具有MyInterface<SomePin>
对象列表。这很有意义-如果每个实现的枚举都不同,则给定一个MyInterface
,您如何知道要传递的值?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句