Sobes.tech
Middle

Jak překladač určuje, jaký výsledek vrátit?

sobes.tech AI

Odpověď od AI

Kompilátor určuje typ vrácené hodnoty funkce nebo metody na základě její podpisu, který obsahuje výslovně uvedený typ před názvem metody.

Například:

// Tato metoda výslovně uvádí, že vrátí celočíselnou hodnotu (int)
public int GetInteger()
{
    return 42;
}

// Tato metoda výslovně uvádí, že nevrací žádnou hodnotu (void)
public void PrintMessage(string message)
{
    Console.WriteLine(message);
}

V případě implicitního typování (například použití var), kompilátor odvodí typ vrácené hodnoty na základě typu hodnoty vrácené instrukcí return.

// Kompilátor určí, že tato metoda vrací string na základě typu vrácené hodnoty
public string GetString()
{
    var text = "Hello";
    return text; // text má typ string, takže metoda vrací string
}

Pokud má metoda několik příkazů return, všechny musí vracet hodnoty kompatibilní s deklarovaným typem vrácení metody.

Při použití asynchronních metod (async) je typ vrácení obvykle Task nebo Task<T>. Kompilátor automaticky generuje odpovídající kód pro správu asynchronní operace.

// Asynchronní metoda, která vrací Task (bez hodnoty)
public async Task DoSomethingAsync()
{
    await Task.Delay(1000);
}

// Asynchronní metoda, která vrací Task<int> (celé číslo)
public async Task<int> GetResultAsync()
{
    await Task.Delay(1000);
    return 123;
}