![]() |
1
5
你不只是把样板搬到别的地方去了吗-从写
|
![]() |
2
13
你错过了一件大事-
如果您实现自己的接口而不是
正如您所提到的,您可以通过一个单独的扩展方法来实现这一点——但是,这是有代价的。通过使用扩展方法转换为
|
![]() |
3
9
你说得对:它 做 似乎是一个非常简单的问题的过于复杂的解决方案。 它还为迭代的每个步骤引入了额外的间接级别。 可能 不是性能问题,但当我认为你没有真正获得任何非常重要的东西时,还是有点不必要。
此外,尽管您的扩展方法允许您转换
或者类似的。基本上,通过执行转换,您将失去将单个对象视为
二者都
实现
另外,不执行
哦,你还介绍了一个世界上其他人都不熟悉的额外的基础设施,与那些已经知道
|
![]() |
4
5
在我们的代码库中,可能有100多个这段代码片段的实例:
我很同意。为与其他所有编写过的.NET代码完全兼容而付出的代价是微乎其微的;) 您提出的解决方案基本上要求新接口的每个使用者/调用者也记住在调用前对其调用一个特殊的扩展方法。 有用的 . |
![]() |
5
1
使用起来容易多了
|
![]() |
6
0
我认为每个人都已经提到了不这样做的技术原因,所以我将把它添加到组合中:要求您的用户对集合调用AsEnumerable()才能使用可枚举扩展将违反最不令人惊讶的原则。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 4 月前 |