c# – Resharper,“返回类型可以是IEnumerable ……”但为什么呢?

前端之家收集整理的这篇文章主要介绍了c# – Resharper,“返回类型可以是IEnumerable ……”但为什么呢?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Resharper suggests parameter can be of type ‘BaseType’2个
我有这样的界面……
public interface IAccountRepository : IDisposable {
    IQueryable<Account> FindByUserId(int userId); //here,Resharper says "Return type can be IEnumerable<Account>"
}

但是Resharper建议我把它改成IEnumerable< Account> FindByUserId(int userId)代替.

为什么会这样?它不会强制将整个对象加载到内存中吗?我认为将执行推迟到真正需要对象之前会更好吗?

解决方法

这只是一般规则的特定实例.

如果要返回一个类型SomeClass,它实现一个接口或继承自另一个类,并且在整个解决方案中,你只使用返回对象的基类/接口中的方法(所以你不要使用SomeClass中声明的任何方法) ),ReSharper将建议您将返回对象的类型替换为基类/接口的类型,以使您的代码更通用.

在这种情况下,您只使用IEnumerable< T>的方法. IQueryable< T>的界面源自于.

另请注意,这只是一个建议,而不是警告或错误.如果您愿意,可以放心地忽略它.

猜你在找的C#相关文章