c# – Resharper,“返回类型可以是IEnumerable ……”但为什么呢
发布时间:2020-12-15 18:08:29 所属栏目:百科 来源:网络整理
导读:参见英文答案 Resharper suggests parameter can be of type ‘BaseType’2个 我有这样的界面…… public interface IAccountRepository : IDisposable { IQueryableAccount FindByUserId(int userId); //here,Resharper says "Return type can be IEnumerab
参见英文答案 >
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>的界面源自于. 另请注意,这只是一个建议,而不是警告或错误.如果您愿意,可以放心地忽略它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |