out — Modyfikator parametrów (odwołanie w C#)

out Słowa kluczowego powoduje, że argumenty przekazywane przez odwołanie.Przypomina to ref słowa kluczowego, z wyjątkiem ref wymaga zainicjowanej zmiennej zanim zostanie przekazany.Aby użyć out jawnie użyć parametru definicji metody oraz wywołanie metody out słowa kluczowego.Na przykład:

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

Chociaż zmienne są przekazywane jako out argumentów nie można zainicjować przed przesłaniem, nazywane metodą jest wymagany do przypisania wartości przed metoda zwraca wartość.

Chociaż ref i out słowa kluczowe powodować różne zachowanie czasu, nie uważa się część podpisu metody w czasie kompilacji.Dlatego metody nie można obciążać Jeśli jedyną różnicą jest to, że zajmuje jedną metodę ref argument i innych ma out argumentu.Poniższy kod, na przykład nie skompilować, będzie:

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) { }
}

Przeciążanie można zrobić, jednak jeśli zajmuje jedną metodę ref lub out , a drugi argument używa ani następująco:

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

Właściwości nie są zmienne i nie mogą być przekazywane jako out parametry.

Informacje o przekazywanie tablic, zobacz Przekazywanie tablic za pomocą ref i out (Przewodnik programowania w języku C#).

Nie można użyć ref i out słowa kluczowe dla następujących rodzajów metod:

  • Metody komunikacji asynchronicznej, które można zdefiniować przy użyciu async modyfikator.

  • Metody iteratora, które obejmują Zwraca rentowność lub yield break instrukcji.

Przykład

Zadeklarowanie out metoda jest użyteczna, gdy metoda zwracać wiele wartości.W poniższym przykładzie użyto out zwraca wywołanie metody pojedynczego trzy zmienne.Należy zauważyć, że trzeci argument jest przypisana do wartości null.Umożliwia to metody opcjonalnie zwracać wartości.

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;
        }
    }

Specyfikacja języka C#

Aby uzyskać więcej informacji, zobacz Specyfikacja języka C#. Specyfikacja języka jest ostatecznym źródłem informacji o składni i użyciu języka C#.

Zobacz też

Informacje

Słowa kluczowe języka C#

Parametry metody (odwołanie w C#)

Koncepcje

Przewodnik programowania w języku C#

Inne zasoby

Odwołanie w C#