gpt4 book ai didi

c# - "Use Extension Methods Sparingly?"背后的动机是什么

转载 作者:可可西里 更新时间:2023-11-01 08:31:01 25 4
gpt4 key购买 nike

我发现它们是扩展现有类的一种非常自然的方式,尤其是当您只需要将某些功能“点焊”到现有类上时。

Microsoft 表示,“一般来说,我们建议您谨慎实现扩展方法,并且仅在必要时才实现。”然而扩展方法构成了 Linq 的基础;事实上,Linq 是创建扩展方法的原因。

是否有特定的设计标准,其中使用扩展方法优先于继承或组合?根据什么标准他们不鼓励?

最佳答案

我们向 C# MVP 展示提议的新语言功能(至少是那些有一半机会看到曙光的功能)以获得早期反馈。我们经常收到的关于许多功能的一些反馈是“好吧会根据功能的设计原则明智地使用此功能,但我的傻瓜同事将对这个东西发疯,写出大量无法维护、无法理解的代码,我将在接下来的十年里一直调试这些代码,所以尽管我想要它,但请永远不要实现这个功能!”

虽然我夸大了一些喜剧效果,但这是我们非常重视的事情;我们希望新功能的设计能够鼓励使用但不鼓励滥用。

我们担心扩展方法会被用于,例如,不加区别地任意扩展“对象”,从而创建松散类型的大泥球,难以理解、调试和维护。

我个人特别关注您在“流畅”编程中看到的“可爱”扩展方法。像

这样的东西
6.Times(x=>Print("hello"));

哎呀。 “for”循环在 C# 中是普遍可以理解和惯用的; 不要变得可爱

关于c# - "Use Extension Methods Sparingly?"背后的动机是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2524599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com