C#入门经典(第7版):C# 6.0 & Visual Studio 2015(.NET开发经典名著)
上QQ阅读APP看书,第一时间看更新

第6章 函数

本章内容:

● 如何定义和使用既不接受任何数据也不返回任何数据的简单函数

● 如何在函数中传入传出数据

● 使用变量作用域

● 如何结合使用Main()函数和命令行参数

● 如何把函数提供为结构类型的成员

● 如何使用函数重载

● 如何使用委托

本章源代码下载:

本章源代码的下载地址为www.wrox.com/go/beginningvisualc#2015programming。从该网页的Download Code选项卡中下载Chapter 6 Code后,可以找到与本章示例对应的单独文件。


我们迄今看到的代码都是以单个代码块的形式出现的,其中包含一些重复执行的循环代码,以及有条件地执行的分支语句。如果要对数据执行某种操作,就应把所需要的代码放在合适的地方。

这种代码结构的作用是有限的。某些任务常需要在一个程序中执行好几次,例如查找数组中的最大值。此时可以把相同(或几乎相同)的代码块按照需要放在应用程序中,但这样做存在一个问题。在某个常见任务中,即使进行非常小的改动(例如,修改某个代码错误),也需要修改多个代码块,而这些代码块可能分布在整个应用程序中。如果忘了修改其中一个代码块,就会产生很大影响,导致整个应用程序失败。另外,应用程序也较长。

解决这个问题的方法是使用函数。在C#中,函数可提供在应用程序中的任何一处执行的代码块。

注意:本章介绍的特定类型的函数称为“方法”。但是,这个术语在.NET编程中有非常特殊的含义,本书后面会详细讨论它,所以现在不使用这个术语。

例如,有一个函数返回数组中的最大值,可在代码的任何位置使用这个函数,且在每个地方都使用相同的代码行。因为只需要提供一次这段代码,所以对代码的任何修改将影响使用该函数进行的计算。这个函数可以看成包含可重用的代码。

函数还可以提高代码的可读性,因为可以使用函数将相关代码组合在一起。这样,应用程序主体就会非常短,因为代码的内部工作被分散了。这类似于在IDE中使用大纲视图将代码区域折叠在一起,应用程序的结构更加合理。

函数还可以用于创建多用途的代码,让它们对不同的数据执行相同的操作。可以采用参数形式为函数提供信息,以返回值的形式得到函数的结果。在上面的示例中,参数就是一个要搜索的数组,而返回值就是数组中的最大值。这意味着每次可以使用同一函数处理不同的数组。函数的定义包括函数名、返回类型以及一个参数列表,这个参数列表指定了该函数需要的参数数量和参数类型。函数的名称和参数(不是返回类型)共同定义了函数的签名。