C#自动铸造接口方法

本文关键字:接口 方法 | 更新日期: 2023-09-27 18:21:29

我有一个接口,它在签名中使用了一个抽象类。然后,我的实现在签名中使用抽象类的一个子类,但这是不允许的。有人能帮我吗?我在谷歌上能找到的只有通用接口和抽象类实现。。。

public MyAbstractClass {
    abstract public void myMethod();
}
public MySubClass : MyAbstractClass {
    override public void myMethod(){
        ...
    }
}

然后我就有了我的接口/实现。。

public interface MyInterface {
    MyAbstractClass myInterfaceMethod(MyAbstractClass blah);
}
public MyImplementation : MyInterface {
    MySubClass myInterfaeMethod(MySubClass blah){
        ...
    }
}

但我在构建时遇到了一个错误,说myInterfaceMethod没有实现接口方法。。。

帮助?

C#自动铸造接口方法

您不能这样做,因为它违反了接口。但是,您可以使MyInterface通用。

public interface MyInterface<T> where T: MyAbstractClass {
    T myInterfaceMethod(T blah);
}
public MyImplementation : MyInterface<MySubClass> {
    MySubClass myInterfaeMethod(MySubClass blah){
        ...
    }
}
相关文章: