Compartilhar via


A palavra-chave ref

Você usa a palavra-chave ref nos seguintes contextos:

  • Em uma assinatura de método e em uma chamada de método, para passar um argumento para um método por referência.
    public void M(ref int refParameter)
    {
        refParameter += 42;
    }
    
  • Em uma assinatura de método para retornar um valor para o chamador por referência. Para obter mais informações, consulte ref return.
    public ref int RefMax(ref int left, ref int right)
    {
        if (left > right)
        {
            return ref left;
        }
        else
        {
            return ref right;
        }
    }
    
  • Em uma declaração de uma variável local, para declarar uma variável de referência.
    public void M2(int variable)
    {
        ref int aliasOfvariable = ref variable;
    }
    
  • Como parte de uma expressão de referência condicional ou um operador de atribuição de referência.
    public ref int RefMaxConditions(ref int left, ref int right)
    {
        ref int returnValue = ref left > right ? ref left : ref right;
        return ref returnValue;
    }
    
  • Em uma declaração struct para declarar um ref struct. Para obter mais informações, confira o artigo reftipos de estrutura.
    public ref struct CustomRef
    {
        public ReadOnlySpan<int> Inputs;
        public ReadOnlySpan<int> Outputs;
    }
    
  • Em uma definição ref struct, para declarar um campo ref. Para saber mais, confira a seção refcampos do artigo reftipos de estrutura.
    public ref struct RefFieldExample
    {
        private ref int number;
    }
    
  • Em uma declaração de tipo genérico para especificar que um tipo de parâmetro permite tipos allows ref struct.
    class RefStructGeneric<T, S>
        where T : allows ref struct
        where S : T
    {
        // etc
    }