我有一个与其他类具有不同Add方法的类,因此不能实现相同的接口...我应该拆分当前接口以便它也可以使用它,还是应该为其创建另一个接口?
更新:
public interface IProductRepository<T, T2>
where T : class
where T2 : class
{
void Add(T model, int categoryId);
void Edit(T model, int id);
void Delete(int id);
T2 Get(int id);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,上面的接口具有一个需要categoryId的Add方法。
我的Category类与上面相同,但是Add方法中没有categoryId参数。我应该为Category类创建一个新接口吗?
C#允许您显式实现接口方法:
public class A : IFoo, IBar{
void IFoo.DoSomething() {
//DoSomething();
}
int IBar.DoSomething() {
return -1;
}
}
Run Code Online (Sandbox Code Playgroud)
这应该允许您实现任何接口,即使它与您已经定义的方法签名冲突。调用哪种方法取决于被调用的类型。例如:
((IFoo) new A()).DoSomething(); // ... may do something different than ...
((IBar) new A()).DoSomething(); // ... would do.
Run Code Online (Sandbox Code Playgroud)