Comparteix via


La palabra clave ref.

Use la palabra clave ref en los contextos siguientes:

  • En una firma del método y en una llamada al método, para pasar un argumento a un método mediante referencia.
    public void M(ref int refParameter)
    {
        refParameter += 42;
    }
    
  • En una firma del método, para devolver un valor al autor de la llamada mediante referencia. Para obtener más información, vea ref return.
    public ref int RefMax(ref int left, ref int right)
    {
        if (left > right)
        {
            return ref left;
        }
        else
        {
            return ref right;
        }
    }
    
  • En una declaración de una variable local, para declarar una variable de referencia.
    public void M2(int variable)
    {
        ref int aliasOfvariable = ref variable;
    }
    
  • Como parte de una expresión ref condicional o un operador de asignación ref.
    public ref int RefMaxConditions(ref int left, ref int right)
    {
        ref int returnValue = ref left > right ? ref left : ref right;
        return ref returnValue;
    }
    
  • En una declaración struct, para declarar un ref struct. Para más información, consulte el artículo de tipos de estructura ref.
    public ref struct CustomRef
    {
        public ReadOnlySpan<int> Inputs;
        public ReadOnlySpan<int> Outputs;
    }
    
  • En una definición ref struct, para declarar un campo ref. Para obtener más información, consulte la sección campos ref del artículo tipos de estructura ref.
    public ref struct RefFieldExample
    {
        private ref int number;
    }
    
  • En una declaración de tipo genérico para especificar que un parámetro de tipo allows ref struct escribe.
    class RefStructGeneric<T, S>
        where T : allows ref struct
        where S : T
    {
        // etc
    }