最简单的办法是用泛型约束。
interface IA<T>:Where T:BaseEntity { void Print(T baseEntity); } public Class B:IA { void Print(MyEntity myEntity) { } }
嗯 这个方法不错。顶一个
反正可以替换嘛,你类B中的print方法就传BaseEntity,真正用的时候在方法里面强制转换呗。。。
这就跟List<BaseClass>跟List<SubClass>不能直接转换一样,接口定义的参数是什么就是什么。
你为什么不考虑让BaseEntity实现接口?这样不就不用转换了么?
不要纠结了……实现接口是实现接口的事。你在调用这个方法的时候,传递子类就行了。