在这段 C# 代码中,我的方法后面的符号“=>”在做什么?

2024-04-18

我最近在这里问了一个问题,有人提供了这样的答案:

private void button1_Click(object sender, EventArgs e)
{
     var client = new WebClient();
     Uri X = new Uri("http://www.google.com");

     client.DownloadStringCompleted += (s, args) => //THIS, WHAT IS IT DOING?
     {
         if (args.Error == null && !args.Cancelled)
         {
             MessageBox.Show();
         }
     };

     client.DownloadStringAsync(X);
}

那=>在做什么?这是我第一次看到这个。


这就是 lambda 运算符。您定义一个带有两个参数 (s, args)(省略类型说明符)的匿名函数,并且该函数的主体是出现在 => 符号之后的内容。

它在概念上与此相同:

...
client.DownloadStringCompleted += Foo;
}

void Foo(object sender, EventArgs args)
{
    if (args.Error == null && !args.Cancelled)
    {
        MessageBox.Show();
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在这段 C# 代码中,我的方法后面的符号“=>”在做什么? 的相关文章

随机推荐