通過C#引用傳遞淺談
在向大家詳細介紹通過C#引用傳遞之前,首先讓大家了解下C# Main() 方法,然后全面介紹通過C#引用傳遞。
C# Main() 方法
每個 C# 應用程序都必須http://msdn.microsoft.com/vstudio/java/gettingstarted/csharpforjava/#Arrays in C#只能包含一個 Main() 方法,Main() 方法指定程序從何處開始執行。注意,在 C# 中,Main() 用大寫字母開頭,而 Java 使用小寫的 main()。
Main() 只能返回 int 或 void,并且有一個可選的字符串數組參數來表示命令行參數:
- static int Main (string[] args)
- {
- ...
- return 0;
- }
當將參數傳遞給方法時,它們可能通過值傳遞,也可能通過引用傳遞。值參數只提取任何變量的值以在方法中使用,因而調用代碼中的變量值不受方法中對這些參數所執行的操作的影響。
而引用型參數指向在調用代碼中聲明的變量,因而在通過引用傳遞時,方法將修改該變量的內容。
通過C#引用傳遞
在 Java 和 C# 中,引用對象的方法參數總是通過C#引用傳遞,而基本數據類型參數則通過值傳遞。
在 C# 中,所有參數在默認情況下都是通過值傳遞的。要通過引用進行傳遞,我們需要指定關鍵字 ref 或 out 中的一個。這兩個關鍵字的不同之處在于參數的初始化。ref 參數必須在使用前進行初始化,而 out 參數無需在傳遞前進行顯式初始化,并且任何先前的值都會被忽略。
請注意,當方法將引用類型作為參數使用時,引用本身是通過值傳遞的。然而,引用仍然指向內存中的同一對象,因此對對象的屬性所做的任何改變在方法退出之后將保持不變。但是,因為引用本身是通過值傳遞的,所以在方法內它應該改為指向一個不同的對象甚至一個新對象,而一旦方法執行完畢,引用就會恢復為指向原來的對象,即使原來的對象是未賦值的也同樣如此。
【編輯推薦】