當我運行下面的代碼(在C#訪問中被問到)時,它沒有輸出任何內容。這個程序爲什麼寫一個空行而不是字符串值?
有人可以解釋這種行爲嗎?
class Program {
private static string result;
static void Main() {
SaySomething();
Console.WriteLine(result);
}
static async Task<string> SaySomething() {
await Task.Delay(5);
result = "Hello world!";
return 「Something」;
}
}
我認爲這種方法應該輸出result
,因爲我打電話
Console.WriteLine(result);
後SaySomething()
方法調用完成
你不等待'SaySomething'完成。 – juharr
如果您要在代碼中使用它,您應該知道如何等待/異步工作。 https://msdn.microsoft.com/en-us/library/hh191443.aspx – Igor
在執行任務之前,您正在執行'Console.WriteLine(result);'。 – Eser