如何在c#的事件处理程序方法中将值从一个函数传递到另一个函数
本文关键字:函数 一个 另一个 事件处理 程序 方法 | 更新日期: 2023-09-27 18:11:48
我使用web客户端填充列表框,我使用,for循环从json响应中分离对象供我使用,我需要在整个类中使用这些对象,I。如果我需要在所有方法中使用这些值,它甚至可以从一个方法传递到另一个方法
代码:void Downloadpage()
{
WebClient webclient = new WebClient();
webclient.Headers["ContentType"] = "application/json";
webclient.DownloadStringCompleted += wc_downloadStringCompleted;
webclient.DownloadStringAsync(new Uri("http://client.web.net/pages_wp.php"), UriKind.RelativeOrAbsolute);
}
public void wc_downloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
string lreport = e.Result.ToString();
string lnoHTMLs = Regex.Replace(lreport, @"<[^>]+>| |‌|»|«|“|''n|''t|", "", RegexOptions.Multiline).Trim();
string lnoHTMLNormaliseds = Regex.Replace(lnoHTMLs, @"'s{2,}", " ");
JArray res = JArray.Parse(lnoHTMLNormaliseds);
news = new List<jsons>();
string rId = res[0]["raportId"].ToString(); ---->a
string rTitle = res[0]["raportTitle"].ToString(); --->b
news.Add(new jsons() { raportId = rId, raportTitle = rTitle});
Presslist.ItemsSource = news;
}
我需要访问值在'a'和'b'在另一个按钮点击事件如下
private void Add_to_cart(object sender, EventArgs e)
{
//values need to come here
}
注意: Add_to_cart触发按钮点击
设置变量为class level
String _rId ="";
String _rTitle ="";
void Downloadpage()
{
WebClient webclient = new WebClient();
webclient.Headers["ContentType"] = "application/json";
webclient.DownloadStringCompleted += wc_downloadStringCompleted;
webclient.DownloadStringAsync(new Uri("http://client.web.net/pages_wp.php"),
UriKind.RelativeOrAbsolute);
}
public void wc_downloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
string lreport = e.Result.ToString();
string lnoHTMLs = Regex.Replace(lreport, @"<[^>]+>| |‌|»|«|“|''n|''t|", "", RegexOptions.Multiline).Trim();
string lnoHTMLNormaliseds = Regex.Replace(lnoHTMLs, @"'s{2,}", " ");
JArray res = JArray.Parse(lnoHTMLNormaliseds);
news = new List<jsons>();
string rId = res[0]["raportId"].ToString(); // ---->a
string rTitle = res[0]["raportTitle"].ToString(); // --->b
news.Add(new jsons() { raportId = rId, raportTitle = rTitle});
_rId = rId;
_rTitle = rTitle;
Presslist.ItemsSource = news;
}
private void Add_to_cart(object sender, EventArgs e)
{
//values need to come here
//_rId
//_rTitle
}
我认为你调用你的Downloadpage()
方法的地方可以保存这些值在一个共同的地方。可以是Session Level
或Application level
空间。
我认为Add_to_cart()
方法是一个按钮单击事件,所以DownloadPage应该在页面加载事件或任何事件中调用,然后显示UI。当调用Add_to_cart()
时,您可以检索值并使用它们。