我如何知道指向触发事件的实例的指针?我使用"对象发送者"作为事件的第一个参数,我投了它。但是没有像" Tag"这有助于我区分不同的组件。
这是我的示例代码:
SMSCclientSMPP[] smsCClientSMPP = new SMSCclientSMPP[10];
for (int i = 0; i < 10; i++)
{
smsCClientSMPP[i] = new SMSCclientSMPP();
smsCClientSMPP[i].OnTcpDisconnected += smsCclientSMPP_OnTcpDisconnected;
}
private void smsCclientSMPP_OnTcpDisconnected(object sender, tcpDisconnectedEventArgs e)
{
SMSCclientSMPP obj = (SMSCclientSMPP)sender;
// obj dosent have Tag field.
}
正如我所说,obj
剂量具有使其与其他物质不同的任何属性。
那么我怎么知道这个事件是由smsCClientSMPP
数组的哪些项引起的。
谢谢你的帮助...
答案 0 :(得分:0)
我不确定您要尝试实现的目标,也不确定这实际上是否回答了您的问题,但由于每个项目都是不同的实例,因此它们应具有不同的GetHashCode()
值:< / p>
obj.GetHashCode()
答案 1 :(得分:-1)
我不了解SMSCclientSMPP,但实现它的最简单方法是包装SMSCclientSMPP创建一个带有新属性Tag或ID的自定义类来识别这些对象。
其他所有内容应该保持不变,您只需将SMSCclientSMPP替换为您的新课程。当然,这只有在可以继承SMSCclientSMPP时才有效。