我如何分配" ip"在这个方法之外?这是我第一次在这里问一个问题。
public async Task GetIPAsync()
{
var client = new HttpClient();
string response = await client.GetStringAsync(new Uri("https://www.meethue.com/api/nupnp"));
string ip = JArray.Parse(response).First["internalipaddress"].ToString();
}
答案 0 :(得分:3)
public async Task<string> GetIPAsync()
{
var client = new HttpClient();
string response = await client.GetStringAsync(new Uri("https://www.meethue.com/api/nupnp"));
string ip = JArray.Parse(response).First["internalipaddress"].ToString();
return ip;
}
// Then to call it, do:
string ip = await GetIPAsync();
答案 1 :(得分:0)
根据您的评论:
我希望ip成为一个班级变量
然后使它成为一个类级变量。例如:
private string ip;
public async Task GetIPAsync()
{
var client = new HttpClient();
string response = await client.GetStringAsync(new Uri("https://www.meethue.com/api/nupnp"));
ip = JArray.Parse(response).First["internalipaddress"].ToString();
}
这会增加ip
变量的范围,使其可用于该类中的其他实例方法。
(当然注意,这个类级变量的状态将与异步操作中的事件序列联系起来。这个时候有点超出了你在问题中展示的范围。)
(另请注意,这个方法可能比在这个问题上简单返回值which was answered elsewhere更不直观。“GetSomething”方法是我希望返回值的东西。返回该值,您可以更好地控制该值的范围以及该方法的重用安全性。如果您希望该值为类级别,那么您就是这样做的但这可能不是你实际建设的最佳方法。)