C#异步函数返回值报错求助:非void异步函数报CS1983错误
解决CS1983异步方法返回类型错误
错误原因
C# 中async方法的返回类型有严格规则:如果方法有返回值,不能直接返回具体类型(比如String),必须返回Task<T>(T为实际返回值类型),或是其他符合要求的异步类型(如IAsyncEnumerable<T>)。你当前的方法返回String,违反了这个规则,因此触发CS1983错误。
修改后的代码
只需把方法的返回类型从String改为Task<String>即可:
public async static Task<String> H() { String url = $@"http://192.168.1.33:5000/Delete_Products?Name={h}"; var h1 = await httpClient.GetStringAsync(url); return h1; }
补充说明
async方法的合法返回类型包括:
void:仅推荐用于事件处理程序,这类方法无法被await,且异常难以捕获Task:无实际返回值的异步方法(替代void,是更安全的选择)Task<T>:有实际返回值T的异步方法,调用时通过await获取最终的T类型结果IAsyncEnumerable<T>/IAsyncEnumerator<T>:用于异步迭代场景
内容的提问来源于stack exchange,提问作者Reza Arbabi
相关产品推荐
相关产品推荐

