C#方法
一種方法是一組一起執行任務語句。每一個C#程序都至少有一個類使用一個名為Main方法。
要使用方法,您需要:
-
定義方法
-
調用方法
在C#中定義方法
當你定義一個方法,聲明它的基本結構元素。在C#定義方法的語法如下:
<Access Specifier> <Return Type> <Method Name>(Parameter List) { Method Body }
下麵是一個方法的各種元素:
-
訪問限定符: 這決定了一個變量的可視性或從其他類中的方法。
-
返回類型: 方法可能會返回一個值。返回類型是該方法返回值的數據類型。如果方法不返回任何值,則返回類型為void。
-
方法名稱:方法名是一個唯一的標識符,它是區分大小寫。它不可能類中聲明的任何其它標識符相同。
-
參數列表:括號之間是封閉的,所述參數用於從一個方法傳遞和接收數據。參數列表指的類型,順序和數量的方法的參數。參數是可選的;也就是說,一種方法可包含任何參數。
-
方法體:這包含了一組以完成活動所需要的指令。
例子:
下麵的代碼片段展示了一個函數FindMax,這需要兩個整數參數並返回兩個值的較大值。它使用public訪問說明符,因此它可以從類的外部使用類的一個實例進行訪問。
class NumberManipulator { public int FindMax(int num1, int num2) { /* local variable declaration */ 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) { /* 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類中的方法,可以從另一個類測試調用它。
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
遞歸方法調用
方法可以調用本身。這是被稱為遞歸。以下是計算階乘用於使用一個遞歸函數的給定數值的一個示例:
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 Console.WriteLine("Factorial of 6 is : {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
將參數傳遞給方法
當方法的參數被調用時,需要將參數傳遞給方法。在C#,有一些參數可傳遞給一個方法有三種方法:
機製 | 描述 |
---|---|
值參數 | 這種方法複製一個參數的實際值到函數的形式參數。在這種情況下,參數在函數內變化對參數冇有影響。 |
引用參數 | 這種方法複製引用參數的內存位置成形式參數。這意味著,對參數所做的更改會影響參數。 |
輸出參數 | 該方法有助於函數返回多個值。 |