[英]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.