引用參數,關鍵字ref。因為在函數中參數值會被改變,所以傳入的變量類型不能是常量。傳入的變量也必須初始化值。
栗子:
using System; namespace MyConsoleApp { internal class Program { private static void Main() { var value = 10; ChangeValue(ref value); Console.WriteLine(value); // 20 } private static void ChangeValue(ref int value) { value += 10; } } }
輸出參數,關鍵字out。out參數可以使用未賦值的變量。函數使用out參數時,也必須把它看成尚未賦值。在函數執行完成之前也必須賦值!
using System; namespace MyConsoleApp { internal class Program { private static void Main() { int value; ChangeValue(out value); Console.WriteLine(value); } private static void ChangeValue(out int value) { value = DateTime.Now.Second; // 等於當前時間的秒數 } } }