Referenzrückgabewerte ermöglichen es Methoden, stattdessen einen Verweis auf eine Variable zurückzugeben als ein Wert.
Der Aufrufer kann wählen, ob die zurückgegebene Variable als behandelt werden soll Wert oder Referenz.
Der Aufrufer kann eine neue Variable erstellen, die selbst eine Referenz auf den Rückgabewert ist, genannt ref local.
Im folgenden Beispiel hat eine Änderung der Farbe keine Auswirkung Rohe Array-Farbe
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
Um dies zu erreichen, können wir Ref-Locals verwenden
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 gibt -
Im folgenden Beispiel zurück, auch wenn wir die Farbe ändern , es hat auch keine Wirkung Ursprüngliche Array-Farbe
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]; } }
blau grün gelb orange rosa
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
Das obige ist der detaillierte Inhalt vonWas sind lokale Ref-Variablen und Ref-Rückgabewerte in C# 7.0?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!