我可以在一行代码中动态创建一个函数并调用它(将值传递给它)吗?
澄清:我正在寻找一些方法可以让我创建一个匿名函数,然后直接调用它.有点:
delegate(string aa){ MessageBox.show(aa); }("Hello World!");
或类似的东西(我知道上面的代码不能编译,但我想要一些接近的东西).
new Action(x => Console.WriteLine(x))(3);
它不是那么可读,但回答你的问题,你绝对可以.
编辑:刚刚注意到你把它标记为c#2.0,上面的答案是3.5,而2.0则是
new Action(delegate(int x) { Console.WriteLine(x); })(3);
在.Invoke
实际上没有必要; 你可以写:
new Action(x => Console.WriteLine(x))(3);
或者对于C#2.0:
new Action(delegate(int x) { Console.WriteLine(x); })(3);