引用傳回值允許方法傳回變數的引用,而不是 比一個值。
呼叫者可以選擇將傳回的變數視為由 值或引用。
呼叫者可以建立一個新變量,該變數本身就是對傳回值的引用,稱為 ref local。
在下面的範例中,即使我們修改了顏色沒有任何影響 原始陣列顏色
class Program{ public static void Main(){ var colors = new[] { "blue", "green", "yellow", "orange", "pink" }; string color = colors[3]; color = "Magenta"; System.Console.WriteLine(String.Join(" ", colors)); Console.ReadLine(); } }
blue green yellow orange pink
為了實現這一點,我們可以使用ref locals
public static void Main(){ var colors = new[] { "blue", "green", "yellow", "orange", "pink" }; ref string color = ref colors[3]; color = "Magenta"; System.Console.WriteLine(String.Join(" ", colors)); Console.ReadLine(); }
blue green yellow Magenta pink
Ref 傳回 -
在下面的範例中,即使我們修改顏色,它也不會產生任何影響 原始陣列顏色
class Program{ public static void Main(){ var colors = new[] { "blue", "green", "yellow", "orange", "pink" }; string color = GetColor(colors, 3); color = "Magenta"; System.Console.WriteLine(String.Join(" ", colors)); Console.ReadLine(); } public static string GetColor(string[] col, int index){ return col[index]; } }
blue green yellow orange pink
class Program{ public static void Main(){ var colors = new[] { "blue", "green", "yellow", "orange", "pink" }; ref string color = ref GetColor(colors, 3); color = "Magenta"; System.Console.WriteLine(String.Join(" ", colors)); Console.ReadLine(); } public static ref string GetColor(string[] col, int index){ return ref col[index]; } }
blue green yellow Magenta pink
以上是C# 7.0 中的 Ref 局部變數和 Ref 回傳值是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!