Sobes.tech
Middle

Kuidas määrab kompilaator, millise tulemuse tagastada?

sobes.tech AI

Vastus AI-lt

Kompilaator määrab funktsiooni või meetodi tagastatava tüübi selle allkirja põhjal, mis sisaldab selgelt näidatud tüüpi enne meetodi nime.

Näiteks:

// See meetod näitab selgelt, et ta tagastab täisarvu (int)
public int GetInteger()
{
    return 42;
}

// See meetod näitab selgelt, et ta ei tagasta midagi (void)
public void PrintMessage(string message)
{
    Console.WriteLine(message);
}

Kui kasutatakse mitte-üheselt tüüpi (näiteks var kasutades), järeldab kompilaator tagastatava väärtuse tüübi return käsu põhjal.

// Kompilaator määrab, et see meetod tagastab stringi, põhinedes tagastatava väärtuse tüübile
public string GetString()
{
    var text = "Hello";
    return text; // text on tüübiga string, seega meetod tagastab stringi
}

Kui meetodil on mitu return käsku, peavad kõik tagastama väärtused, mis on sobivad meetodi deklareeritud tagastustüübiga.

Asünkroonsetel meetoditel (async) on tagastustüüp tavaliselt Task või Task<T>. Kompilaator genereerib automaatselt sobiva koodi asünkroonse operatsiooni haldamiseks.

// Asünkroonne meetod, mis tagastab `Task` (ilma väärtuseta)
public async Task DoSomethingAsync()
{
    await Task.Delay(1000);
}

// Asünkroonne meetod, mis tagastab `Task<int>` (täisarv)
public async Task<int> GetResultAsync()
{
    await Task.Delay(1000);
    return 123;
}