csharp.aspone.cz csharp.aspone.cz

Modifikátory parametrů metod

Modifikátor parametruVýznam modifikátoru
žádnýnení-li parametr označen modifikátorm, předpokládá se, že se předává hodnotou, což znamená, že volaná metoda obdrží kopii původních dat
outvolané metodě se přiřazují výstupní parametry (proto se předávají odkazem). Jestliže volaná metoda opomine přiřadit výstupní parametry, objeví se chyba při kompilaci
paramsumožňuje metodě odesílat proměnlivý počet argumentů téhož typu prostřednictvím jediného parametru. Metoda může mít jen jediný modifikátor params a musí to být poslední parametr metody
refhodnotu na počátku přiřadí volající, nicméně hodnotu může (nepovinně) opětovně přiřadit volaná metoda (protože se zde také předávají odkazem). Jestliže metoda opomine přiřadit parametr s modifikátorem ref, při kompilaci se nevygeneruje žádná chyba

Modifikátor out

Takže zde se použil dvakrát modifikátor out, které vracely proměnné ans a lipsum. Ans pracuje se vstupnímy parametry a lipsum jsme inicializovali v těle metody Add. Takže musím určit, že z metody půjdou ven. Při volání metody musím také udat vstupní parametry a to jakože, chci parametry out ven.

using System;

class program
{

    public static void Add(int x, int y, out int ans, out int lipsum)
    {
         ans = x + y;
         lipsum = 3432;
    }

    static void Main()
    {
        int ans;
        int lipsum;

        Add(90, 90, out ans, out lipsum);
        Console.WriteLine("90 + 90 = {0}, {1}", ans, lipsum);
    }
}

Modifikátor out

Je to prostě varianta předchozího příkladu.

using System;

class modifikatorOut
{
    public static void FillTheseValues(out int a, out string b, out bool c)
    {
        a = 9;
        b = "Řetězec";
        c = true;
    }

    static void Main()
    {
        int i;
        string str;
        bool b;

        FillTheseValues(out i, out str, out b);
        
        Console.WriteLine("Int je {0}", i);
        Console.WriteLine("String je {0}", str);
        Console.WriteLine("Boolean je {0}", b);   
    }
}