標記了async,函式裡就可以用await,return的語義也會發生變化,返回型別也必須是task或者task。所以這就是個語法而已,不要去對async鑽牛角尖。你這個問題就像為什麼只有函式裡面可以寫語句而類裡面不行一樣。
如果你用了async但是沒用await,你也是創造了乙個task類的建構函式,僅此而已。這跟await關係不大,async決定的是return應該怎麼理解。既然都一定要有乙個關鍵字來改變return了,那要求用了await也要寫上async,也就是順理成章的事情了。
如果當初要求你把return寫成await return的話,那沒有async的確不是問題。你看yield return就沒讓你加什麼關鍵字。
C 的async和await關鍵字
1.async關鍵字 標記在方法的返回值前面,標記該方法內部可以await關鍵字來進行非同步操作。2.await關鍵字 前提方法要被async修飾,才能在方法內部使用await,await後面必須是乙個task,標記了await,就說明後面的操作是乙個非同步操作,但是主線程還是要等待這個非同步操作完...
java final關鍵字到底修飾了什麼
final使得被修飾的變數 不變 但是由於物件型變數的本質是 引用 使得 不變 也有了兩種含義 引用本身的不變,和引用指向的物件不變。引用本身的不變 final stringbuffer a new stringbuffer immutable final stringbuffer b new st...
Java final 關鍵字到底修飾了什麼?
final使得被修飾的變數 不變 但是由於物件型變數的本質是 引用 使得 不變 也有了兩種含義 引用本身的不變,和引用指向的物件不變。引用本身的不變 inal stringbuffer a new stringbuffer immutable final stringbuffer b new str...