2011-02-17 64 views
2

如何执行以下操作显示在Javascript在C#4.0:C#4.0匿名函数

var output = doSomething(variable, function() { 
    // Anonymous function code 
}); 

我敢肯定,我以前见过这个地方,但我找不到任何的例子。

+0

您可以使用委托或Lambda express离子 – 2011-02-17 22:17:41

+0

请参阅[如何调用匿名函数在c](http://stackoverflow.com/questions/3923864/how-to-call-anonymous-function-in-c) – nawfal 2014-07-06 12:57:22

回答

2

虽然它不像JavaScript那样QUITE很多,但您需要查看Lambda Expressions,因为C#的工作方式有点不同。您可能还想查看delegates

例如代码:

namespace Test { 
    class Tests { 
     delegate string MyDelegate(); 

     public void Main(string[] args) { 
      var output = doSomething("test1",() => { return "test2";}); 
     } 

     public string doSomething(string test, MyDelegate d) { 
      return test + d(); 
     } 
    } 
} 
+0

您能否请提供一个与问题中概述的相同的例子? – GateKiller 2011-02-17 22:19:08

2
var output = (x) => { 
    // Anonymous function code 
}; 
5

使用lambda表达式(无参数,因此空括号),这是非常简单的:

var output = doSomething(variable,() => { 
    // Anonymous function code 
}); 

在C#2.0中,语法是有点更长:

SomeType output = doSomething(variable, delegate { 
    // Anonymous function code 
});