gpt4 book ai didi

c# - 使用扩展方法来增强可读性

转载 作者:行者123 更新时间:2023-11-30 14:44:02 27 4
gpt4 key购买 nike

关于使用除了增强可读性之外没有任何目的的扩展方法的一般想法是什么?

如果不使用扩展方法,我们可能有方法

IEnumerable<DependencyObject> GetDescendents(DependencyObject root) {}

可以调用

var descendents = GetDescendents(someControl);

foreach (var descendent in GetDescendents(someControl)) {}

虽然这没有任何问题,但我发现 instance.method() 符号更具可读性,所以我可能会考虑将其作为具有此签名的扩展方法

public IEnumerable<DependencyObject> GetDescendents(this DependencyObject root) {}

允许它被调用

var descendents = someControl.GetDescendents();

foreach (var descendent in someControl.GetDescendents()) {}

所以我的问题是你认为这是合理的还是滥用扩展方法。如果只是简单地以不同方式声明函数,我会毫不犹豫;但使用扩展方法需要将它编码在不同的静态类中这一事实让我怀疑它是否值得付出努力。我在上面使用的示例是一个相当通用的示例,可能具有作为扩展方法的优点,可以在多个地方使用,但通常情况并非如此,我将在与以下文件相同的文件中编写包含扩展的静态类使用它的单个类。

最佳答案

我认为扩展方法的一大优势是可发现性。如果有人不知道他们的团队成员之一在某处的实用程序类中创建了 GetDescendents 方法,他们将永远不会使用它。但是,如果该方法开始出现在 Intellisense 或对象浏览器中,他们很可能会偶然发现它。如果您开始更广泛地使用扩展方法,人们将开始使用我提到的工具来寻找增加值(value)的扩展。

关于c# - 使用扩展方法来增强可读性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1097260/

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