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