我有以下方法并收到以下错误。我想知道我怎么能在这个问题上克服。
异步方法的返回类型必须为void,Task或Task
private static async T GoRequest<T>(string url, Dictionary<string, object> parameters, HttpMethod method,string body = "")
where T : class
{
// the rest of the code I commented.
// the following is the return
var jsonResult = content.Replace(@"\", "").Trim('"');
return typeof (T) == typeof (string)
? jsonResult as T
: JsonConvert.DeserializeObject<T>(jsonResult);
}
答案 0 :(得分:2)
您需要将回复类型换成Task
。
private static async Task<T> GoRequest<T>(string url, Dictionary<string, object> parameters, HttpMethod method, string body = "")
where T : object
答案 1 :(得分:1)
规则很简单:如果“常规”同步方法返回T
,则async
方法必须返回Task<T>
:
private static async Task<T> GoRequest<T>(string url, Dictionary<string, object> parameters, HttpMethod method,string body = "")
where T : class
您无需更改任何其他内容:当您的async
代码返回T
时,编译器会确保结果实际为Task<T>
。
注意:由于您的async
方法中没有await
,因此您可以将其更改为“常规”同步方法。