命名参数和可选参数的规则

  自从引入了命名参数和可选参数后,人们对它们的反应不一。一些开发人员,尤其是使用Microsoft Office的开发人员,非常喜欢它们;但许多其他的开发人员认为这种修改对C#语言而言是不必要的,觉得设计良好的用户接口应该不需要这种访问方式—-至少不需要在语言层次上执行这种修改。

  我个人认为命名参数和可选参数有一些优点,但我担心对它们的过度使用会损害代码。对于一些情形,例如上面提到的Microsoft Office,它们肯定是有益的。另外,像上一个示例中那样定义了许多选项来控制方法的操作的代码将更容易编写和使用。但大多数情况下,没有合适的理由,最好不要使用命名参数和可选参数。为了确定是否使用应该使用命名参数和可选参数,也许这是一个很好的测试方法:在事先不知道方法功能的情况下查看方法调用,看看是否确定会得到什么结果。如果参数及其用法很明显(在编写良好的代码中,应很明显),就不需要使用命名参数或可选参数来重构代码。