Condividi tramite


Parola chiave ref

È possibile usare la parola chiave ref nei contesti seguenti:

  • Nella firma di un metodo e in una chiamata a un metodo, per passare un argomento a un metodo per riferimento.
    public void M(ref int refParameter)
    {
        refParameter += 42;
    }
    
  • Nella firma di un metodo, per restituire un valore al chiamante per riferimento. Per ulteriori informazioni, vedere ref return.
    public ref int RefMax(ref int left, ref int right)
    {
        if (left > right)
        {
            return ref left;
        }
        else
        {
            return ref right;
        }
    }
    
  • In una dichiarazione di una variabile locale, per dichiarare una variabile di riferimento.
    public void M2(int variable)
    {
        ref int aliasOfvariable = ref variable;
    }
    
  • Come parte di un'espressione di riferimento condizionale o di un operatore di assegnazione di riferimento.
    public ref int RefMaxConditions(ref int left, ref int right)
    {
        ref int returnValue = ref left > right ? ref left : ref right;
        return ref returnValue;
    }
    
  • In una dichiarazione struct, per dichiarare ref struct. Per ulteriori informazioni, vedere l'articolo Tipi di struttura ref.
    public ref struct CustomRef
    {
        public ReadOnlySpan<int> Inputs;
        public ReadOnlySpan<int> Outputs;
    }
    
  • In una definizione ref struct, per dichiarare un campo ref. Per altre informazioni, vedere la sezione Campi ref dell'articolo Tipi di strutture ref.
    public ref struct RefFieldExample
    {
        private ref int number;
    }
    
  • In una dichiarazione di tipo generico per specificare che un parametro di tipo allows ref struct tipi.
    class RefStructGeneric<T, S>
        where T : allows ref struct
        where S : T
    {
        // etc
    }