C#添加事件处理程序文字代码块

Jos*_*nig 2 c# event-handling

是否可以在C#中添加文字代码块作为事件处理程序?就像是:

Timer t = new Timer(1000);
t.Elapsed += new ElapsedEventHandler({ Console.WriteLine("Tick"); });
Run Code Online (Sandbox Code Playgroud)

您可以在PowerShell中执行此操作,因此我认为在C#中可能还有某种方法可以执行此操作.

Jon*_*eet 10

您可以使用lambda表达式(C#3.0和更高版本):

t.Elapsed += (sender, args) => Console.WriteLine("Tick");
Run Code Online (Sandbox Code Playgroud)

或匿名方法(C#2.0及更高版本):

// If you don't need the parameter values
t.Elapsed += delegate { Console.WriteLine("Tick"); };

// If you do need the parameter values
t.Elapsed += delegate(Object sender, ElapsedEventArgs args) {
    Console.WriteLine("Tick from {0}", sender); 
};
Run Code Online (Sandbox Code Playgroud)