我发现它们是扩展现有类的非常自然的方式,特别是当您只需要将某些功能“点焊”到现有类上时。
微软表示,“一般来说,我们建议您谨慎地实现扩展方法,并且仅在必要时才实现。”然而,扩展方法构成了 Linq 的基础;事实上,Linq 是创建扩展方法的原因。
是否存在特定的设计标准,其中使用扩展方法优于继承或组合?他们在什么标准下被劝阻?
我们向 C# MVP 展示了提议的新语言功能(至少是那些有一定机会面世的功能)以获得早期反馈。我们经常收到的关于许多功能的一些反馈是“很好I会根据该功能的设计原则明智地使用该功能,但是我的傻瓜同事我会对这个东西发疯,写出大量无法维护、无法理解的代码,在接下来的十年里我将陷入调试的困境,所以尽管我想要它,但请永远不要实现这个功能!”
虽然为了喜剧效果我有些夸张,但这是我们非常认真对待的事情;我们希望新功能的设计能够鼓励它们的使用,但阻止它们的滥用。
我们担心扩展方法会被用来,例如,不加区别地任意扩展“对象”,从而创建松散类型的大泥球,这将难以理解、调试和维护。
我个人特别关心您在“流畅”编程中看到的“可爱”扩展方法。像这样的东西
6.Times(x=>Print("hello"));
恶心。 “for”循环在 C# 中是普遍可以理解和惯用的;别变得可爱.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)