Maison  >  Article  >  développement back-end  >  Que sont les variables locales Ref et les valeurs de retour Ref en C# 7.0 ?

Que sont les variables locales Ref et les valeurs de retour Ref en C# 7.0 ?

PHPz
PHPzavant
2023-09-11 22:37:02779parcourir

C# 7.0 中的 Ref 局部变量和 Ref 返回值是什么?

Les valeurs de retour de référence permettent aux méthodes de renvoyer une référence à une variable au lieu de qu'une valeur.

L'appelant peut choisir de traiter la variable renvoyée comme valeur ou référence.

L'appelant peut créer une nouvelle variable qui est elle-même une référence à la valeur de retour, appelée ref local.

Dans l'exemple ci-dessous, même si on modifie la couleur cela n'a aucun effet Couleur du tableau brut

Exemple

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

Sortie

blue green yellow orange pink

Pour y parvenir, nous pouvons utiliser des ref locales

Exemple

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

Sortie

blue green yellow Magenta pink

Ref return -

Dans l'exemple ci-dessous, même si nous modifions la couleur, elle n'a également aucun effet Couleur du tableau d'origine

Exemple

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

sortie

bleu vert jaune orange rose

Exemple

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

sortie

blue green yellow Magenta pink

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer