Rumah >pembangunan bahagian belakang >Tutorial C#.Net >Apakah pembolehubah setempat Ref dan nilai pulangan Ref dalam C# 7.0?
Nilai pulangan rujukan membenarkan kaedah mengembalikan rujukan kepada pembolehubah dan bukannya daripada nilai.
Pemanggil boleh memilih untuk menganggap pembolehubah yang dikembalikan sebagai nilai atau rujukan.
Pemanggil boleh mencipta pembolehubah baharu yang dengan sendirinya merujuk kepada nilai pulangan, dipanggil ref local.
Dalam contoh di bawah, walaupun kita ubah suai warna ia tidak memberi kesan Warna tatasusunan mentah
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
Untuk mencapai ini, kita boleh menggunakan 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 mengembalikan warna - di bawah, jika kita mengembalikan warna -
di bawahjuga tiada kesan Warna susunan asal
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]; } }
biru hijau kuning oren merah jambu
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
Atas ialah kandungan terperinci Apakah pembolehubah setempat Ref dan nilai pulangan Ref dalam C# 7.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!