Csharp 简明教程
C
方法是一组共同执行任务的代码段。每个 C# 程序都至少有一个包含名为 Main 的方法的类。
要在方法中使用,你需要——
-
Define the method
-
Call the method
Defining Methods in C
当你定义方法时,基本上就声明了其结构的元素。C# 中定义方法的语法如下——
<Access Specifier> <Return Type> <Method Name>(Parameter List) {
Method Body
}
以下是方法的各种元素——
-
Access Specifier − 这将确定变量或方法在另一个类中的可见性。
-
Return type − 方法可能返回一个值。返回值类型是方法返回的值的数据类型。如果方法没有返回任何值,则返回类型为 void 。
-
Method name − 方法名是唯一标识符,而且区分大小写。它不可以与类中声明的任何其他标识符相同。
-
Parameter list − 用括号括起来,参数用于从方法传递和接收数据。参数列表表示方法的参数类型、顺序和数量。参数是可选的;也就是说,方法可能不包含任何参数。
-
Method body − 这包含完成所需的活动所需的一组指令。
Example
以下代码片段展示了一个函数 FindMax,它接收两个整数值并返回较大的一个。它有公共访问说明符,因此可以使用类的实例从类外部访问它。
class NumberManipulator {
public int FindMax(int num1, int num2) {
/* local variable declaration */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
...
}
Calling Methods in C
你可以使用这种名称调用方法。以下示例对此进行说明——
using System;
namespace CalculatorApplication {
class NumberManipulator {
public int FindMax(int num1, int num2) {
/* local variable declaration */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
static void Main(string[] args) {
/* local variable definition */
int a = 100;
int b = 200;
int ret;
NumberManipulator n = new NumberManipulator();
//calling the FindMax method
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) {
/* local variable declaration */
int result;
if(num1 > num2)
result = num1;
else
result = num2;
return result;
}
}
class Test {
static void Main(string[] args) {
/* local variable definition */
int a = 100;
int b = 200;
int ret;
NumberManipulator n = new NumberManipulator();
//calling the FindMax method
ret = n.FindMax(a, b);
Console.WriteLine("Max value is : {0}", ret );
Console.ReadLine();
}
}
}
编译并执行上述代码后,将产生以下结果 −
Max value is : 200
Recursive Method Call
方法可以自己调用自己。这称为 recursion 。以下是使用递归函数计算给定数字阶乘的示例——
using System;
namespace CalculatorApplication {
class NumberManipulator {
public int factorial(int num) {
/* local variable declaration */
int result;
if (num == 1) {
return 1;
} else {
result = factorial(num - 1) * num;
return result;
}
}
static void Main(string[] args) {
NumberManipulator n = new NumberManipulator();
//calling the factorial method {0}", n.factorial(6));
Console.WriteLine("Factorial of 7 is : {0}", n.factorial(7));
Console.WriteLine("Factorial of 8 is : {0}", n.factorial(8));
Console.ReadLine();
}
}
}
编译并执行上述代码后,将产生以下结果 −
Factorial of 6 is: 720
Factorial of 7 is: 5040
Factorial of 8 is: 40320
Passing Parameters to a Method
当带参数的方法被调用时,需要将参数传递到方法中。有三种方式可以将参数传递到方法中 -
Sr.No. |
Mechanism & Description |
1 |
Value parameters 此方法将实参的实际值复制到函数的形式参数中。在这种情况下,在函数中对参数所做的更改不会对实参产生影响。 |
2 |
Reference parameters 此方法将对实参的内存位置的引用复制到形式参数中。这意味着对参数所做的更改会影响实参。 |
3 |
Output parameters 此方法有助于返回值不止一个。 |