如何在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, @"<[^>]+>|&nbsp;|&zwnj;|&raquo;|&laquo;|&ldquo;|''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触发按钮点击

如何在c#的事件处理程序方法中将值从一个函数传递到另一个函数

设置变量为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, @"<[^>]+>|&nbsp;|&zwnj;|&raquo;|&laquo;|&ldquo;|''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 LevelApplication level空间。

我认为Add_to_cart()方法是一个按钮单击事件,所以DownloadPage应该在页面加载事件或任何事件中调用,然后显示UI。当调用Add_to_cart()时,您可以检索值并使用它们。