[英]C# CS0079 Event Handling Compile Error
我尝试运行以下代码时遇到CS0079编译错误:
public delegate void MyClassEHandler(MyClassEParam param);
public class MyClassE
{
public static event MyClassEHandler Error
{
add
{
MyClassE.Error = (MyClassEHandler)Delegate.Combine(MyClassE.Error, value);
}
}
}
错误:
CS0079:事件
MyClassE.Error
只能出现在+ =或 - =的左侧
搜索过但无法弄清楚如何解决它。
ADDED:if(MyClass.Error!= null)或MyClass.Error(null,null);
得到相同的CS0079错误。
CS0079:事件
MyClassE.Error
只能出现在+ =或 - =的左侧
谁可以帮我这个事?
您无法设置事件,只需在其上添加或删除处理程序即可。 所以,正如错误所说,你应该这样做:
public delegate void MyClassEHandler(MyClassEParam param);
public static event MyClassEHandler Error
{
add
{
MyClassE.Error += value;
}
remove
{
MyClassE.Error -= value;
}
}
而且Delegate.Combine
会为你神奇地工作。
试试这个
public delegate void MyClassEHandler(MyClassEParam param);
static MyClassEHandler error;
public static event MyClassEHandler Error
{
add
{
MyClassE.error += (MyClassEHandler)Delegate.Combine(MyClassE.Error, value);
}
remove
{
MyClassE.Error -= (MyClassEHandler)Delegate.Combine(MyClassE.Error, value);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.