我有一个像这样的界面...
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>
源自于。
另请注意,这只是一个建议,不是警告或错误。如果您愿意,可以安全地忽略它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)