基于this,你如何更加忽视参数?
var m = menuStrip.Items.Add(“Hello”,null,delegate {MessageBox.Show(“Como Esta Mundo”);});
我正在思考:
var m = menuStrip.Items.Add(“Hello”,null,==> MessageBox.Show(“Como Esta Mundo”));
var m = menuStrip.Items.Add(“Hello”,null,?=> MessageBox.Show(“Como Esta Mundo”));
或者也许这样:
var m = menuStrip.Items.Add(“Hello”,null,?=> MessageBox.Show(“Como Esta Mundo”));
你会采取什么措施?
<语言进化观察> 他们甚至添加?操作者的语言,这确实很美。现在我想如果他们想要反过来(即NullIf运算符),如果你想把某些东西视为相同的“”或者零等于null< / language evolution observation>
答案 0 :(得分:2)
好吧,就像匿名方法一样,你必须知道你试图将lambda表达式转换为的编译时类型(除非C#开始支持自由函数,这是一个更大的变化)。
我非常喜欢?=>虽然:
Action<int> foo = ?=> Console.WriteLine("Okay");
EventHandler handler = ?=> Console.WriteLine("Okay too");
现在ToolStripCollection.Add
明确声明EventHandler
为委托,您的示例就可以了。但这不会:
control.Invoke(?=> Console.WriteLine("No no no"));
这里编译器不知道尝试将lambda表达式转换为哪种类型,因此需要强制转换 - 就像今天的匿名方法一样。