C# 事件默认初始值设定项

C# 事件默认初始值设定项,c#,events,delegates,initializer,C#,Events,Delegates,Initializer,我过去常常使用以下方法: public event EventHandler OnComplete = delegate { }; 我不确定这是怎么叫的,这是一个“事件默认初始值设定项”吗 但问题似乎是当我从EventArgs派生、创建自己的EventHandler并决定使用相同的方法时。请参阅: public class MyEventArgs : EventArgs { int result; public int Result { get

我过去常常使用以下方法:

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 { };
导致问题的原因

如何为“我的”事件进行适当的默认初始化

我还认为你的意思是:

public delegate void MyEventHandler(object sender, MyEventArgs e);
不是

我还认为你的意思是:

public delegate void MyEventHandler(object sender, MyEventArgs e);
不是


返回值类型肯定是
void
,就是这样……我今天瞎了吗。和
公共事件MyEventHandler OnOperationComplete=委托{}工作正常。谢谢返回值类型肯定是
void
,就是这样……我今天瞎了吗。和
公共事件MyEventHandler OnOperationComplete=委托{}工作正常。谢谢
public delegate EventHandler MyEventHandler(object sender, MyEventArgs e);