C#接口具有相同的方法名称

前端之家收集整理的这篇文章主要介绍了C#接口具有相同的方法名称前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不知道我想做什么是不可能的:或者我没有以正确的方式思考它.

我正在尝试构建一个存储库接口类,它接受泛型类型并将其用作大多数方法返回的基础,即:

public interface IRepository<T> {
    void Add(T source);
    T Find(int id);
}

然后,这将由实际的存储库类继承,如下所示:

public class TestClientRepository : IRepository<ClientEmailAddress>,IRepository<ClientAccount> {

}

例如,我想在ClientRepository中对几种不同的对象类型(ClientAccount,ClientEmailAddress等)执行操作;但总的来说,所需的操作类型都是一样的.

当我尝试使用TestClientRepository时(​​在显式实现Interfaces之后),我看不到多个Find和Add方法.

有人可以帮忙吗?
谢谢.

解决方法

当然 – 您所要做的就是将它用作适当的界面:
TestClientRepository repo = new TestClientRepository();

IRepository<ClientEmailAddress> addrRepo = repo;
ClientEmailAddress address = addrRepo.Find(10);

IRepository<ClientAccount> accountRepo = repo;
ClientAccount accoutn = accountRepo.Find(5);

基本上显式实现的接口方法只能在接口类型的表达式上调用,而不能在实现接口的具体类型上调用.

原文链接:https://www.f2er.com/csharp/243571.html

猜你在找的C#相关文章