check-out (translation from VPE for Csharp Reference)

The out palavra-chave faz com que os argumentos a serem passados por referência. Isso é como a ref palavra-chave, exceto que ref requer que a variável ser inicializada antes de ser passada. Usar um out parâmetro, a definição do método e o método de chamada deve usar explicitamente a out palavra-chave. Por exemplo:

class OutExample
{
    static void Method(out int i)
    {
        i = 44;
    }
    static void Main()
    {
        int value;
        Method(out value);
        // value is now 44
    }
}

Embora sistema autônomo variáveis passadas sistema autônomo out argumentos não são necessário ser inicializados antes de ser passado, o método de chamada é necessário atribuir um valor antes do método retorna.

The ref e out palavras-chave são tratadas de modo diferente em time de execução, mas eles são tratados o mesmo em time de compilar. Portanto métodos não podem ser sobrecarregados se um método leva um ref argumento e a Outros usa uma out argumento. Esses dois métodos, por exemplo, são idênticos em relação a compilar, para que esse código não será compilado:

class CS0663_Example
{
    // Compiler error CS0663: "Cannot define overloaded 
    // methods that differ only on ref and out".
    public void SampleMethod(out int i) { }
    public void SampleMethod(ref int i) { }
}

Sobrecarga pode ser feita, no entanto, se um método usa um ref ou out argumento e o Outros utiliza nenhuma, como este:

class OutOverloadExample
{
    public void SampleMethod(int i) { }
    public void SampleMethod(out int i) { i = 5; }
}

Propriedades não são variáveis e, portanto, não podem ser passadas sistema autônomo out parâmetros.

Para obter informações sobre matrizes de passagem, consulte Passando usando matrizes ref e out (translation from VPE for Csharp Programming guia).

Exemplo

Declarando um out método é útil quando você deseja que um método para retornar valores múltiplos. Um método que usa um out parâmetro ainda pode acessar variáveis sistema autônomo um tipo de retorno (consulte retornar) mas ele também pode retornar um ou mais objetos para um método de chamada sistema autônomo out parâmetros. Este exemplo usa out para retornar três variáveis com uma telefonar de método único. Observe que o terceiro argumento é atribuído ao nulo.Isso permite que os métodos retornar valores opcionalmente.

class OutReturnExample
{
    static void Method(out int i, out string s1, out string s2)
    {
        i = 44;
        s1 = "I've been returned";
        s2 = null;
    }
    static void Main()
    {
        int value;
        string str1, str2;
        Method(out value, out str1, out str2);
        // value is now 44
        // str1 is now "I've been returned"
        // str2 is (still) null;
    }
}

Especificação da linguagem C#

Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:

  • 5.1.6 Parâmetros de saída

  • 10.6.1.3 Parâmetros de saída

Consulte também

Conceitos

Guia de Programação C#

Referência

Palavras-chave C#

Parâmetros do método (translation from VPE for Csharp Reference)

Outros recursos

Referência C#