Sdílet prostřednictvím


out – modifikátor parametrů (Referenční dokumentace jazyka C#)

out Klíčové slovo způsobuje argumenty předávané odkazem.To je jako ref klíčové slovo kromě ref vyžaduje inicializována proměnná před předáním.Použití out musí explicitně použít parametr definice metody a volající metodu out klíčové slovo.Příklad:

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

Přestože proměnné předána jako out nemusí být inicializován před předáním argumentů, je nutné přiřadit před metoda vrátí hodnotu volané metody.

Přestože ref a out klíčová slova způsobit jiné chování runtime, nejsou považovány za součást metodu podpisu v době kompilace.Proto nelze metody přetížení jediným rozdílem je, že jedna metoda trvá-li ref argument a jiných trvá out argument.Například následující kód nebude kompilován:

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

Přetížení lze provést, však trvá jednu metodu ref nebo out argument a druhá používá ani tímto způsobem:

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

Vlastnosti nejsou proměnné a proto nelze předat jako out parametry.

Informace o předávání polí, Předávání polí pomocí parametrů ref a out (Průvodce programováním v C#).

Nelze použít ref a out klíčová slova pro následující druhy metod:

  • Asynchronní metody, které definujete pomocí asynchronní modifikátor.

  • Iterační metody, které patří Vrátí výnos nebo yield break prohlášení.

Příklad

Prohlášení out metoda je užitečná, pokud chcete metodu vrátit více hodnot.Následující příklad používá out vrátit tři proměnné s jedinou metodu volání.Všimněte si, že třetí argument je přiřazena hodnota null.To umožňuje volitelně vracet hodnoty metody.

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

Specifikace jazyka C#

Další informace najdete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.

Viz také

Referenční dokumentace

Klíčová slova jazyka C#

Parametry metody (Referenční dokumentace jazyka C#)

Koncepty

Průvodce programováním v C#

Další zdroje

Referenční dokumentace jazyka C#