C# 7.0 中的 Ref 區域性變數和 Ref 返回值是什麼?
引用返回值允許方法返回對變數的引用,而不是值。
然後,呼叫者可以選擇將返回變數視為透過值或引用返回。
呼叫者可以建立一個新變數,該變數本身是對返回值的引用,稱為 ref 區域性變數。
在下面的示例中,即使我們修改了顏色,也不會對原始陣列 colors 產生任何影響
示例
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 區域性變數
示例
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 返回 −
在下面的示例中,即使我們修改了顏色,也不會對原始陣列 colors 產生任何影響
示例
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];
}
}輸出
藍色 綠色 黃色 橙色 粉紅色
示例
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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP