我可以动态创建一个函数并在一行代码中调用它(将值传入它)吗?创建一个函数并在一行C#代码中调用
澄清: 我正在寻找一些方法,可以让我创建一个匿名函数,然后直接调用它。 (我知道上面的代码不能编译,但我想要的东西接近)。
我可以动态创建一个函数并在一行代码中调用它(将值传入它)吗?创建一个函数并在一行C#代码中调用
澄清: 我正在寻找一些方法,可以让我创建一个匿名函数,然后直接调用它。 (我知道上面的代码不能编译,但我想要的东西接近)。
new Action<int>(x => Console.WriteLine(x))(3);
它不太可读,但回答你的问题,你肯定可以。
编辑:刚才注意到你标记它作为C#2.0中,答案是以上3.5,2.0这将是
new Action<int>(delegate(int x) { Console.WriteLine(x); })(3);
要创建一个匿名方法使用委托:
delegate(...your arguments...) { ...your code... };
编辑:这个问题是修订后pablitos答案更准确。
对问题进行修改/更改后,回答不正确的问题在我看来不是投票应该如何工作。 – 2009-01-29 09:30:22
实际上不需要.Invoke
;你可以这样写:
new Action<int>(x => Console.WriteLine(x))(3);
或C#2.0:
new Action<int>(delegate(int x) { Console.WriteLine(x); })(3);
请解释一下你为什么要这么做。 – 2009-01-29 08:11:19
我不想通过引入另一个声明来混乱我的类标题。 – 2009-01-29 08:13:58
为什么不使用普通的旧内联代码?另外我也看不出私人方法会成为一个大问题。 – 2009-01-29 08:16:04