gpt4 book ai didi

C# - 接口(interface)拆分?

转载 作者:行者123 更新时间:2023-12-02 11:13:00 25 4
gpt4 key购买 nike

我有一个类,它的 Add 方法与其他类不同,因此无法实现相同的接口(interface)...我应该拆分当前接口(interface)以便它也可以使用它,还是应该为其创建另一个接口(interface)?

更新:

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);
}

如您所见,上面的界面有一个需要类别Id的Add方法。

我的 Category 类与上面相同,但 Add 方法中没有categoryId 参数。我应该为 Category 类创建一个新接口(interface)吗?

最佳答案

C# 允许您显式实现接口(interface)方法:

public class A : IFoo, IBar{
void IFoo.DoSomething() {
//DoSomething();
}
int IBar.DoSomething() {
return -1;
}
}

这应该允许您实现任何接口(interface),即使它与您已经定义的方法签名冲突。调用哪个方法将取决于调用它的类型。例如:

((IFoo) new A()).DoSomething(); // ... may do something different than ...
((IBar) new A()).DoSomething(); // ... would do.

关于C# - 接口(interface)拆分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3688995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com