Home Return Type of an Immediate await vs Postponed await
 I am seeking clarification as to why an immediate await returns the type of the asynchronous, non-void task whereas postponing the await returns the task itself. If my terminology in the title or elsewhere is incorrect, please let me know. private async Task GetUserId(Guid id) { string thisUserId = null; ... do stuff ... return thisUserId; } public async Task MyFunc(Guid id) { var a = await GetUserId(id); var b = GetUserId(id); ... do stuff ... await b; return Ok(true); }  Why is a of type string while b is of type Task?