高级方法参数-机器人学导论第三版课后习题答案
14.5 高级方法参数
C# 4扩展了定义和使用方法参数的方式。这主要是为了响应使用外部定义的接口时出现的一个特殊问题,例如Microsoft Office编程模型。一些方法有大量的参数,许多参数并不是每次调用都需要的。过去,这意味着需要一种方式指定缺失的参数,否则在代码中会出现许多空值:RemoteCall(var1, var2, null);
在这行代码中,null值表示什么并不明显,或者它们为什么省略并不清楚。也许,在理想情况下,这个RemoteCall()
方法有多个重载版本,其中一个重载版本仅需要两个参数:RemoteCall(var1, var2);
但是,这需要更多带其他参数组合的方法,这本身就会带来更多问题(要维护更多的代码,增加了代码的复杂性等)。
Visual Basic等语言以另一种方式处理这种情况,即允许使用命名参数和可选参数。在C# 4版本中也允许这样做,这是所有.NET语言的演化趋于一致的一种方式。下面几节介绍如何使用这些新的参数类型。
14.5.1 可选参数
调用方法时,常常给某个参数传送相同的值。这可能是一个布尔值,以控制方法操作中的不重要部分。具体而言,考虑下面的方法定义:
public List<string> GetWords(string sentence, bool capitalizeWords) {...}
string>
更多关于C#高级方法参数的信息,你可以参考C#源码大全,那里有更详细的代码示例和解释。如果你对C和C++的对比以及在这些语言中处理类似问题的不同方式感兴趣,可以查看C++参考手册。
14.5.2 命名参数
当方法有多个可选参数时,命名参数可以使代码更具可读性。考虑下面的代码示例:
public void DisplayMessage(string message, bool urgent = false, bool log = false) {
// Method implementation
}
在调用时,可以使用命名参数来明确指定哪个参数是哪个:
DisplayMessage("Hello World", log: true);
这样,代码不仅清晰,而且维护起来也更加方便。如果你需要进一步理解命名参数的使用,可以参考这篇关于C#基础教程的文章。
用户评论