Partager via


Le mot clé ref

Vous utilisez le mot clé ref dans les contextes suivants :

  • Dans une signature de méthode et dans un appel de méthode, pour passer un argument à une méthode par référence.
    public void M(ref int refParameter)
    {
        refParameter += 42;
    }
    
  • Dans une signature de méthode, pour retourner une valeur à l’appelant par référence. Pour plus d’informations, consultez ref return.
    public ref int RefMax(ref int left, ref int right)
    {
        if (left > right)
        {
            return ref left;
        }
        else
        {
            return ref right;
        }
    }
    
  • Dans une déclaration d’une variable locale, pour déclarer une variable de référence.
    public void M2(int variable)
    {
        ref int aliasOfvariable = ref variable;
    }
    
  • En tant que partie d’une expression ref conditionnelle ou d’un opérateur d’assignation par référence.
    public ref int RefMaxConditions(ref int left, ref int right)
    {
        ref int returnValue = ref left > right ? ref left : ref right;
        return ref returnValue;
    }
    
  • Dans une déclaration de struct, pour déclarer un ref struct. Pour plus d’informations, consultez l’article Types de structures ref.
    public ref struct CustomRef
    {
        public ReadOnlySpan<int> Inputs;
        public ReadOnlySpan<int> Outputs;
    }
    
  • Dans une définition ref struct, pour déclarer un champ ref. Pour plus d’informations, consultez la section Champs ref de l’article Types de structures ref.
    public ref struct RefFieldExample
    {
        private ref int number;
    }
    
  • Dans un type générique pour spécifier qu’un paramètre de type autorise les types ref struct (allows ref struct).
    class RefStructGeneric<T, S>
        where T : allows ref struct
        where S : T
    {
        // etc
    }