我以前使用的是以下内容:
public event EventHandler OnComplete = delegate { };
我不确定这个叫什么名字,是"事件默认初始化器"吗?
但问题出现在我从EventArgs派生,创建了自己的EventHandler并决定使用相同的方法。请看:
public class MyEventArgs : EventArgs
{
int result;
public int Result
{
get
{
if (exceptionObject == null)
return result;
else
throw new InvalidOperationException();
}
internal set { result = value; }
}
Exception exceptionObject;
public Exception ExceptionObject
{
get { return exceptionObject; }
internal set { exceptionObject = value; }
}
}
public delegate EventHandler MyEventHandler(object sender, MyEventArgs e);
public class MyOperation
{
public event MyEventHandler OnOperationComplete = delegate { };
}
所以,这行代码是:
public event MyEventHandler OnOperationComplete = delegate { };
引起问题的原因。
我该如何为“我的”事件进行适当的默认初始化?
void
,就是这样...我今天是瞎了吗。而且public event MyEventHandler OnOperationComplete = delegate { };
工作得很好。谢谢! - undefined