我有以下基本接口
public interface IBaseAction
{
bool CanAct(...)
}
并且有两个继承接口,分别是
public interface IAction1 : IBaseAction{}
并且。
public interface IAction2 : IBaseAction{}
我的问题是,我有一个实现了两个接口的类,而我想要以不同的方式实现CanAct。
public class ComplexAction : IAction1, IAction2
{
bool IAction1.CanAct(...){} //doesn't compile as CanAct is not a member of IAction1!!
}
ComplexAction c=new ComplexAction();
var a1 = (IAction1)c;
var a2 = (IAction2)c;
a1.CanSave(); //THESE TWO CALLS SHOULD BE IMPLEMENTED DIFFERENTLY
a2.CanSave();
有没有比较干净的方法来实现这个?
(此外,我的接口具有语义意义和至少三个以上的功能,因此不可能放弃整个层次结构,但如果这是唯一的解决方案,我愿意将bool CanAct复制到每个继承接口中(它们共有4-6个))