方法(Method)是一个已命名的语句集。如果以前使用过其他编程语言,如C或Visual Basic等,就可以将方法视为函数或者子程序相似的东西。每个方法都有一个名称和一个主体。方法名应该是一个有意义的标识符,它应描述出方法的用途(如CalculateIncomeTax)。方法主体包含了调用方法时实际执行的语句。你可以为大多数方法提供一些数据来进行处理,并让它返回一些信息(通常是处理结果)。方法是一种基本的、功能强大的编程机制。
1、指定方法声明语法
Microsoft Visual C#方法的语法格式是:
returnType methodName ( parameterList )
{
// 这里添加方法主体语句
}
returnType(返回类型)是一个类型名,它指定了方法返回的信息是什么类型。这可以是任何类型,如int或string。如果要写一个不返回值的方法,那么必须用关键字void来取代返回类型。
methodName(方法名)是调用方法时使用的名称。方法名所遵循的标识符命名规则和变量名一样。例如,addValues是一个有效的方法名,而add$Values是无效的。目前,应该为方法名采用camelCase命名风格,而且应该以一个动词开头,使方法的用途更加一目了然,例如displayCustomer。
parameterList(参数列表)是可选的,它描述了可以传递给方法的信息的类型和名称。在圆括号中填写变量信息时,要像声明变量时那样,先写上参数的类型名,再写上参数名。如果方法有两个或者更多的参数,必须使用逗号来分隔它们。
方法主体语句是调用方法时要执行的代码行。它们必须放在起始和结束大括号({})之间。
重要提示 C,C++和Microsoft Visual Basic程序员请注意,C#不支持全局方法。所有方法都必须在一个类的内部,否则代码无法编译。
以下是一个名为addValues的方法的定义,它返回一个int类型的值,并可接收两个int类型的参数,分别名为leftHandSide和rightHandSide。
int addValues(int leftHandSide, int rightHandSide)
{
// ...
//这里添加方法主体语句
// ...
}
以下是一个名为showResult的方法的定义,它不返回任何值,并可接收一个名为answer的int参数:
void showResult(int answer)
{
// ...
}
注意,假如方法不返回任何值,那么必须使用void关键字。
重要提示 Visual Basic程序员请注意,C#不允许使用不同的关键字来区分一个要返回值的方法(也就是函数)和一个不返回值的方法(也就是过程或者子程序)。在C#中,要么指定一个返回类型,要么指定void。
2、return语句
如果希望一个方法返回信息(换言之,它的返回类型不是void),就必须在方法内部写一个return语句。为此,首先要写下关键字return,再写一个表达式(它将计算要返回的值),最后写一个分号。表达式的类型必须与函数指定的返回类型相同。换言之,假如一个函数返回int值,那么return语句必须返回一个int值。否则,程序将无法编译。示例如下:
int addValues(int leftHandSide, int rightHandSide)
{
// ...
return leftHandSide + rightHandSide;
}
return语句应该位于方法的尾部,因为它会造成方法的结束。return语句之后的任何语句都不会执行(如果坚持在return语句之后添加其他语句,编译器会因此发生警告)。假如方法不准备返回信息(返回类型为void),可以利用return语句的一个变体来立即从方法中退出。在这种情况下,需要先写下关键字return,然后紧跟一个分号。例如:
void showResult(int answer)
{
// 显示答案
...
return;
}
如果方法不返回任何信息,还可以省略return语句,因为一旦执行到方法尾部的结束大括号(}),方法会自动结束。不过,虽然这是一种常见的写法,但并不是一个良好的编程习惯。
研究方法定义
1. 启动Visual Studio 2005。
2. 打开My Documents文件夹中的\Microsoft Press\Visual CSharp Step by Step\Chapter 3\Methods子文件夹中的Methods项目。
3. 选择“调试”|“开始执行(不调试)”。Visual Studio 2005将开始生成并运行应用程序。
4. 体验一下应用程序的运行,单击Quit。
5. 在“代码和文本编辑器”窗口中显示Form1.cs的代码(在“解决方案资源管理器”中右击Form1.cs,并从弹出菜单中选择“查看代码”)。
6. 在“代码和文本编辑器”窗口中,找到addValues方法,如下所示:
private int addValues(int leftHandSide, int rightHandSide)
{
expression.Text = leftHandSide.ToString() + " + " + rightHandSide.ToString();
return leftHandSide + rightHandSide;
}
addValues方法包含两个语句。第一个语句在窗体上的expression文本框中显示要执行的计算。leftHandSide 和rightHandSide参数值被转换成了字符串(使用第2章介绍过的ToString方法),并在两者之间使用一个“+”符号来连接。
第二个语句使用操作符+求leftHandSide和rightHandSide这两个int变量之和,并返回结果。记住,两个int值相加得到的也是int值,所以addValues方法的返回类型要设为int。
7. 在“代码和文本编辑器”窗口中找到showResult方法,如下所示:
private void showResult(int answer)
{
result.Text = answer.ToString();
}
这个方法只有一个主体语句,作用是在result文本框中显示answer的字符串形式。