Pet*_*wen 2 c# casting interface abstract
我有一个在其签名中使用抽象类的接口.然后我的实现在其签名中使用抽象类的子类,但这是不允许的.有人可以帮我吗?我在googles上找到的只是通用接口和抽象类实现......
public MyAbstractClass {
abstract public void myMethod();
}
public MySubClass : MyAbstractClass {
override public void myMethod(){
...
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有我的接口/实现..
public interface MyInterface {
MyAbstractClass myInterfaceMethod(MyAbstractClass blah);
}
public MyImplementation : MyInterface {
MySubClass myInterfaeMethod(MySubClass blah){
...
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误,说myInterfaceMethod没有实现接口方法...
救命?
你不能这样做,因为它违反了界面.但是你可以制作MyInterface通用的.
public interface MyInterface<T> where T: MyAbstractClass {
T myInterfaceMethod(T blah);
}
public MyImplementation : MyInterface<MySubClass> {
MySubClass myInterfaeMethod(MySubClass blah){
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
263 次 |
| 最近记录: |