—— 以下信息均來自網上,後邊會稍加自己的總結 ——
c#的類型分為兩種:值類型和引用類型:
值類型: 簡單類型(包括int, long, double等)和結構(structs)都是值類型
引用類型:除了值類型以外的都是引用類型。
ref 關鍵字使參數按引用傳遞。其效果是,當控制權傳遞回調用方法時,在方法中對參數的任何更改都將反映在該變量中。若要使用 ref 參數,則方法定義和調用方法都必須顯式使用 ref 關鍵字。例如:
1 class RefExample
傳遞到 ref 參數的參數必須最先初始化。這與 out 不同,後者的參數在傳遞之前不需要顯式初始化。有關更多信息,請參見 out。
盡管 ref 和 out 在運行時的處理方式不同,但在編譯時的處理方式相同。因此,如果一個方法采用 ref 參數,而另一個方法采用 out 參數,則無法重載這兩個方法。例如,從編譯的角度來看,以下代碼中的兩個方法是完全相同的,因此將不會編譯以下代碼:
1 class CS0663_Example
但是,如果一個方法采用 ref 或 out 參數,而另一個方法不采用這兩個參數,則可以進行重載,如下例所示:
1 class RefOverloadExample