加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 08:26:22 所属栏目:百科 来源:网络整理
导读:我不知道我想做什么是不可能的:或者我没有以正确的方式思考它. 我正在尝试构建一个存储库接口类,它接受泛型类型并将其用作大多数方法返回的基础,即: public interface IRepositoryT { void Add(T source); T Find(int id);} 然后,这将由实际的存储库类继承
我不知道我想做什么是不可能的:或者我没有以正确的方式思考它.

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读