c# - 什么时候命名参数有用?

标签 c#

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/

相关文章:

c# - 以编程方式取消订阅事件

C# 包装器接口(interface)错误 : E_NOINTERFACE

c# - 让 Entity Framework 生成带有 MySQL 所需的反引号标识符的 SQL

c# - C# 中 WCF 服务的裸 Json 响应

c# - 查找两个字符串列表之间的差异

c# - 在存储库中实现通用类型

c# - Update-Plugin CRM 2011 上的前后实体图像

c# - 如何更新由另一个组合框触发的组合框中的值?

c# - 在 asp.net CheckBoxList 中选择所有项目

c# - 从 if 语句中执行 else 语句 C#