二、方法
1、 方法概述
方法和C語言中的 函數共享同一個理念。一直以來,我們在用的Main()方法就是個例子。還有上例中 public string doSth() 也是一個方法。其中,public是 類的修飾符,string是方法的返回值,也可以 沒有返回值,即 void ,DOSth是方法名稱。()括號必須有,在括號中可以有參數,如Doctor類的構造函 數 public Doctor(string name,byte age) 就有兩個參數。方法體則必須用一對{}括起來。
方法的調用,則需要先實例化類,然後調用類的某個方法。上例中Doctor dc=new Doctor();來實例化 了類,然後 dc.DOSth() 就是調用了Doctor類的方法。
如果方法是靜態的,即 static,則不需要實例化類,直接使用 類名.方法名 就可以調用了。如上例 中 Console.WriteLine(Doctor.doAnth()); 即是直接調用了靜態的doAnth方法。
2、方法的參數
參數可以通過引用或者值傳遞 給方法。具體有什麼區別呢?
我們來看個例子。
using System;
namespace gosoa.com.cn
{
public class OneDoctor
{
static void FunctionTest(int [] arr, int x)
{
arr[0]=100;
x=10;
}
static void Main()
{
int [] arrTemp={0,1,2,3,4};
int y=30;
Console.WriteLine(arrTemp[0]);
Console.WriteLine(y);
FunctionTest(arrTemp, y);
Console.WriteLine(arrTemp[0]);
Console.WriteLine(y);
}
}
}
本例的輸出結果是0,30,100,30 因為數組是引用類型,在調用方法前後,引用類型的修改會保留下 來,而值類型的修改不會保留下來。
3、ref 參數。
我們把 上例中的方法修改為 static void FunctionTest(int [] arr, ref int x) 這樣,調用的時 候 也加上 ref 即:functionTest(arrTemp, ref y); 執行後的結果就是0,30,100,10。
ref 關鍵字是強迫參數通過引用傳遞。
注意:在調用有ref參數的方法時,必須將參數要傳遞的參數提前初始化。但在調用out參數的方法時 ,就不必提前初始化。