[英]How can I return an integer with async method in C#?
我需要将点值与 integer 进行比较,以检查用户是否有足够的点数。 get_points(user) > 10
代码:
public async int get_points(string user){
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new
Uri("https://api.streamelements.com/kappa/v2/points/abcd/fgh"),
Headers =
{
{ "Accept", "application/json" },
{ "Authorization", "Bearer 123" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var result = await response.Content.ReadAsStringAsync();
JObject jObj = JObject.Parse(result);
Console.WriteLine(jObj["points"]);
return jObj["points"].ToObject<int>();
}
}
错误:异步方法的返回类型必须为 void。
您可以使用Task<int>
public async Task<int> get_points(string user){
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new
Uri("https://api.streamelements.com/kappa/v2/points/abcd/fgh"),
Headers =
{
{ "Accept", "application/json" },
{ "Authorization", "Bearer 123" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var result = await response.Content.ReadAsStringAsync();
JObject jObj = JObject.Parse(result);
Console.WriteLine(jObj["points"]);
return jObj["points"].ToObject<int>();
}
}
请注意,您还需要确保在调用它时等待get_points
方法,因为它是一种异步方法。
int points = await get_points(user);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.