高级方法参数

  C# 4扩展了定义和使用方法参数的方式。这主要是为了响应使用外部定义的接口时出现的一个特殊问题,例如Microsoft Office编程模型。其中,一些方法有大量参数,许多参数并不是每次调用都需要的。过去,这意味着需要一种方式指定缺失的参数,否则在代码中会出现许多空值:

  1. RemoteCall(var1, var2, null, null, null, null, null);

  在这行代码中,null值表示什么并不明显,或者它们为什么省略并不清楚。

  也许,理想情况下,这个RemoteCall()方法有多个重载版本,其中一个重载版本仅需要两个参数:

  1. RemoteCall(var1, var2);

  但是,这需要更多带其他参数组合的方法,这本身就会带来更多问题(要维护更多的代码,增加了代码复杂程度等)。

  Visual Basic等语言以另一种方式处理这种情况,即允许使用命名参数和可选参数。从C# 4版本开始,C#中也允许这样做,这是所有.NET语言的演化趋于一致的一种方式。

  下面几节介绍如何使用这些新的参数类型。