首页 / C# / C#:方法的通用实现不满足接口
C#:方法的通用实现不满足接口
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#:方法的通用实现不满足接口,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1208字,纯文字阅读大概需要2分钟。
内容图文
![C#:方法的通用实现不满足接口](/upload/InfoBanner/zyjiaocheng/812/81f08623e968410aa5e248c3c26f145f.jpg)
在this帖子中,我谈到了使用通用基类来使我能够创建存储库类而不会重复加载基本的管道代码.
每个存储库都通过接口访问.在下面的代码中,为了简洁起见,我只会展示其中一种方法:
接口:
IQueryable<Suggestion> All { get; }
通用基类
public IQueryable<T> All
{
get { return _unitOfWork.GetList<T>(); }
}
具体类(实现接口并扩展通用基类)
public IQueryable<Suggestion> All
{
get { return _unitOfWork.GetList<Suggestion>(); }
}
我预计我将能够简单地从具体类中删除该方法,并且编译器将使用通用基类实现,并找出旨在满足该接口的方法.但不是!
当我删除方法时,我得到旧的“没有实现接口成员”错误.
如果我不能这样做,我努力使用通用基类没有意义吗?或者有办法解决这个问题吗?
解决方法:
您是否可以使接口本身具有通用性,然后在具体类中实现类型化版本?
public interface IRepository<T>
{
List<T> All { get; }
}
public class Repository<T>
{
public List<T> All
{
get { return new List<T>(); }
}
}
public class SuggestionRepository : Repository<Suggestion>, IRepository<Suggestion>
{ }
我仍然建议使用通用接口,因为它可以避免重复自己,但这也有效.
public interface ISuggestionRepository
{
List<Suggestion> All { get; }
}
public class Repository<T>
{
public List<T> All
{
get { return new List<T>(); }
}
}
public class SuggestionRepository : Repository<Suggestion>, ISuggestionRepository
{ }
内容总结
以上是互联网集市为您收集整理的C#:方法的通用实现不满足接口全部内容,希望文章能够帮你解决C#:方法的通用实现不满足接口所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。