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

时间:2011-09-23 14:39:46

标签: c# event-handling

是否可以在C#中添加文字代码块作为事件处理程序?类似的东西:

Timer t = new Timer(1000);
t.Elapsed += new ElapsedEventHandler({ Console.WriteLine("Tick"); });

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

2 个答案:

答案 0 :(得分:10)

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

t.Elapsed += (sender, args) => Console.WriteLine("Tick");

或匿名方法(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); 
};

答案 1 :(得分:2)

t.Elapsed += delegate(object sender, ElapsedEventArgs args)
             { 
                 Console.WriteLine["Tick"]; 
             });

或者,您也可以使用lambda语法:

t.Elapsed += (sender, args) => { Console.WriteLine["Tick"]; };