[英]Event not firing
有人可以解释这段代码有什么问题吗? 当我致电mco时,不会触发此事件。
private ModiconComunications.ModiconComObject withEventsField_mco = new ModiconComunications.ModiconComObject();
private ModiconComunications.ModiconComObject mco
{
get { return withEventsField_mco; }
set
{
if (withEventsField_mco != null)
{
withEventsField_mco.GetDataReturn -= mco_GetDataReturn;
}
withEventsField_mco = value;
if (withEventsField_mco != null)
{
withEventsField_mco.GetDataReturn += mco_GetDataReturn;
}
}
}
当我调用下面的行时,它应该触发事件mco_GetDataReturn,但是不会。 我做错了什么?
mco.GetData(ModiconComunications.ModiconComObject.GetDataType.READ_MODICON_HREGS, 11421, 9, 0);
好吧,首先使用EventsField_mco(由该行创建的那个):
private ModiconComunications.ModiconComObject withEventsField_mco = new ModiconComunications.ModiconComObject();
没有得到它的事件处理程序挂钩。 除非您在构造函数中执行此操作。
多一点的代码会有所帮助。
您使用一个新对象初始化了EventsField_mco。 但是,由于您没有在mco属性上使用设置器,因此不会关联任何事件。
试试这个测试这个原因:
McocontainingObject.mco = new ModiconComunications.ModiconComObject();
mco.GetData(ModiconComunications.ModiconComObject.GetDataType.READ_MODICON_HREGS, 11421, 9, 0);
或在您的构造函数中
class McoContainer{
private ModiconComunications.ModiconComObject withEventsField_mco;
public McoContainer(){
this.mco = new ModiconComunications.ModiconComObject();
}
public ModiconComunications.ModiconComObject mco{
get{...}
set{...}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.