C# 代码中是否存在位置参数不够用的情况? 我真的没有看到命名参数的任何好处,相反我可以看到过度使用命名参数会如何使代码难以阅读?所以我的问题是,为什么有人会使用它们以及它如何帮助编写更好的代码,因为我确定它们不是无缘无故实现的?
这对我来说看起来更干净:
private void Foo(1, true);
然后:
private void Foo(bar: 1, baz: true);
最佳答案
命名参数旨在提高可读性。例如,我刚刚使用了一个
public void MarkAsDone(bool skipped) {}
现在通过调用没有名称的方法我们有歧义
MarkAsDone(true); //does true mean that it is successfully done?
可以通过名称来解决
MarkAsDone(skipped: true);
我认为使用命名参数可以减少客户端代码的歧义。
除此之外,当有多个相同类型的可选参数时,它们可用于唯一标识一个可选参数
MarkAsDone(int first, int second=0, int third=0) {}
///
MarkAsDone(1, third: 3);
关于c# - 什么时候命名参数有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20601009/