11
|
csharptest.net · 技术社区 · 15 年前 |
1
18
我的偏好是
另一个很好的例子是
|
2
15
我不返回数组——在创建API时,它们确实是一种糟糕的返回类型——如果您确实需要可变序列,请使用
Arrays considered somewhat harmful 埃里克·利珀特:
|
3
8
方法参数应使用
|
4
1
我更喜欢IEnumerable,因为它是最高级的界面,让最终用户有机会按照自己的意愿进行重播。即使这可以为用户提供最基本的功能(基本上只是枚举),但它仍然足以满足几乎任何需要,特别是扩展方法ToArray()、ToList()等。 |
5
1
我从编写最有用的代码的角度考虑这一点:可以做更多事情的代码。
换句话说,这意味着我愿意接受
最弱的
接口可以作为方法参数,因为这使我的代码在更多地方都很有用。在这种情况下,这是一个
这也意味着我喜欢返回
接口,以便依赖于该方法的代码可以轻松地执行更多操作。在这种情况下,这将是
请注意,对于返回类型,我有点不传统。一种更典型的方法是还从方法返回较弱的类型,以避免将自己锁定在特定的实现中。 |
6
0
IEnumerable<T>对于延迟评估迭代非常有用,特别是在使用方法链接的场景中。
这也是对调用方的一个指示,表明集合实际上已经具体化。因此,调用方可以迭代返回的集合,而不会从数据访问层获得异常。这可能很重要。例如,服务可以从返回的集合生成流(例如SOAP)。如果在生成流时由于延迟的计算迭代而从数据访问层抛出异常,这可能会很尴尬,因为抛出异常时输出流已经部分写入。 |
7
0
由于将Linq扩展方法添加到IEnumerable<T>,我发现我对其他接口的使用已经大大减少了;大概80%左右。我曾经使用列表<T>因为它有接受委托进行懒惰评估的方法,比如Find、FindAll、ForEach等等。由于这可以通过System.Linq的扩展获得,因此我将所有这些引用替换为IEnumerable<T>参考资料。 |
8
0
我不会使用数组,它是一种允许修改的类型,但没有添加/删除。。。有点像这群人中最坏的。如果我想允许修改,那么我将使用支持添加/删除的类型。 当您想要阻止修改时,您已经在包装/复制它,所以我看不出IEnumerable或ReadOnlyCollection有什么问题。我以后会和你一起去。。。我不喜欢IEnumerable的一点是,它本质上是懒惰的,但是当您仅使用预加载的数据来包装它时,调用与它一起工作的代码往往会假定预加载的数据或有额外的“不必要的”行:(…在更改期间可能会得到不好的结果。 |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
Dansih · .Net核心自定义身份验证方案 2 年前 |
lolorekkk · 面板插入。NET WinForm 2 年前 |