【发布时间】:2009-11-15 17:37:21
【问题描述】:
我正在学习 lambda 表达式和委托。当我尝试执行以下操作时,我在标记为粗体的行处遇到错误。 (错误:运算符“+=”不能应用于“Test.MessageDelegate”和“lambda 表达式”类型的操作数)。帮我处理 lambda 表达式。
namespace Test
{
public delegate void MessageDelegate(string title,object sender,EventArgs e);
class Program
{
static event MessageDelegate logEvent;
static void Main(string[] args)
{
logEvent = new MessageDelegate(OnLog);
logEvent("title",Program.logEvent,EventArgs.Empty);
logEvent += (src, e) => { OnLog("Some",src, e); };
Console.ReadKey(true);
}
static void OnLog(string title, object sender, EventArgs e)
{
if (logEvent != null)
{
Console.WriteLine("title={0}", title);
Console.WriteLine("sender={0}", sender);
Console.WriteLine("arguments={0}",e.GetType());
}
}
}
}
【问题讨论】: