Computer >> Máy Tính >  >> Lập trình >> C#

Ref địa phương và trả lại Ref trong C # 7.0 là gì?

Giá trị trả về tham chiếu cho phép một phương thức trả về tham chiếu đến một biến, thay vì một giá trị.

Sau đó, người gọi có thể chọn xử lý biến được trả về như thể nó được trả về bằng giá trị hoặc bằng tham chiếu.

Người gọi có thể tạo một biến mới mà bản thân nó là một tham chiếu đến giá trị được trả về, được gọi là tham chiếu cục bộ.

Trong ví dụ dưới đây, mặc dù chúng tôi sửa đổi màu nhưng nó không có bất kỳ mpact nào so với các màu mảng ban đầu

Ví dụ

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();
   }
}

Đầu ra

blue green yellow orange pink

Để đạt được điều này, chúng tôi có thể sử dụng những người dân địa phương giới thiệu

Ví dụ

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();
}

Đầu ra

blue green yellow Magenta pink

Trả về giới thiệu -

Trong ví dụ dưới đây, mặc dù chúng tôi sửa đổi màu nhưng nó không có bất kỳ mpact nào so với các màu mảng ban đầu

Ví dụ

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];
   }
}

Đầu ra

xanh xanh vàng cam hồng

Ví dụ

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];
   }
}

Đầu ra

blue green yellow Magenta pink