方法是一组一起执行特定任务的语句。每一个 C# 程序至少包含一个带有名为 Main 的方法的类。
要使用一个方法,你需要做两件事:
-
-
在 C# 中定义方法
当你定义一个方法时,实际上是声明了它的结构元素。在 C# 中定义方法的语法如下:
<访问修饰符> <返回类型> <方法名称>(参数列表) {
方法体
}
以下是方法的各个组成部分:
-
访问修饰符 — 这决定了一个变量或方法从另一个类的可见性。
-
返回类型 — 方法可能返回一个值。返回类型是方法返回的值的数据类型。如果方法不返回任何值,则返回类型是
void
。
-
方法名称 — 方法名称是一个唯一的标识符并且对大小写敏感。它不能与类中声明的任何其他标识符相同。
-
参数列表 — 包含在括号中的参数用于向方法传递和接收数据。参数列表指的是方法的类型、顺序和数量。参数是可选的,即方法可以不包含任何参数。
-
示例
下面的代码片段展示了一个名为 FindMax
的函数,它接受两个整数值并返回较大的那个。它有 public
访问修饰符,因此可以使用类的实例从类外部访问它。
class NumberManipulator {
public int FindMax(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
...
}
在 C# 中调用方法
你可以使用方法的名称来调用一个方法。下面的示例说明了这一点:
示例代码
using System;
namespace CalculatorApplication {
class NumberManipulator {
public int FindMax(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
static void Main(string[] args) {
int a = 100;
int b = 200;
int ret;
NumberManipulator n = new NumberManipulator();
ret = n.FindMax(a, b);
Console.WriteLine("Max value is : {0}", ret );
Console.ReadLine();
}
}
}
当上述代码被编译和执行时,它会产生以下结果:
Max value is : 200
你也可以通过使用类的实例从其他类中调用公共方法。例如,FindMax
方法属于 NumberManipulator
类,你可以从另一个类 Test
中调用它。
示例代码
using System;
namespace CalculatorApplication {
class NumberManipulator {
public int FindMax(int num1, int num2) {
int result;
if(num1 > num2)
result = num1;
else
result = num2;
return result;
}
}
class Test {
static void Main(string[] args) {
int a = 100;
int b = 200;
int ret;
NumberManipulator n = new NumberManipulator();
ret = n.FindMax(a, b);
Console.WriteLine("Max value is : {0}", ret );
Console.ReadLine();
}
}
}
当上述代码被编译和执行时,它会产生以下结果:
Max value is : 200
递归方法调用
方法可以调用自身。这种情况称为递归。下面是一个使用递归函数计算给定数字阶乘的例子:
示例代码
using System;
namespace CalculatorApplication {
class NumberManipulator {
public int factorial(int num) {
int result;
if (num == 1) {
return 1;
} else {
result = factorial(num - 1) * num;
return result;
}
}
static void Main(string[] args) {
NumberManipulator n = new NumberManipulator();
Console.WriteLine("Factorial of 7 is : {0}", n.factorial(7));
Console.WriteLine("Factorial of 8 is : {0}", n.factorial(8));
Console.ReadLine();
}
}
}
当上述代码被编译和执行时,它会产生以下结果:
Factorial of 7 is : 5040
Factorial of 8 is : 40320
向方法传递参数
当调用带有参数的方法时,你需要向方法传递参数。参数可以通过以下三种方式传递给方法:
-
值参数
-
这种方法将实际参数的值复制到函数的形式参数中。在这种情况下,在函数内部对参数所做的更改不会影响原始参数。
-
引用参数
-
这种方法将实际参数的内存位置的引用复制到形式参数中。这意味着对参数的更改会影响原始参数。
-