关于delegate中方法为null该怎么办 delegate 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 void CONNECT(ref myDel A, myDel B){if (B != null) A += B; } B一开始不是null,后来因为需要对象被消除,变成null的 B一开始不是null,后来因为需要对象被消除,变成null的楼主的意思是不是:当Connect(A,B)时B还是存在的,不是NULL,但是在执行委托链时,B变成空了是吧? 如果只有一个B,可以用if(A != null)来解决CONNECT(ref A, B);B = null //B的对象被deleteif(A != null)A(args); //这样调用没问题A中有多个方法的时候,其中只要有一个B为null, 就会无法if判断导致异常。CONNECT(ref A, B);CONNECT(ref A, C);CONNECT(ref A, D);B = null //B的对象被deleteif(A != null)A(args); // 这样调用error!!! 如果A -= B; 确实可以解决,但是操作起来太复杂,每次delete对象前还要一个个删除delegate请问如何简单快捷的消除A中的null A在 Class X中B在 Class Y中希望通过 CONNECT(ref A, B); 来调用 Class Y中的方法但是中途Class Y 被delete ,B变为null调用A的时候就会异常。 简单地说:没办法去除delegate list里的null参照么? 急。。。 正则表达式获取数据问题 我没有太多分,好心人请给我发个三层c/s架构的范例 求助C#.net2.0播放器的代碼分不够在加!幫幫忙拉 C#中的catch()到底()里面表示的什么东东? vs2010和oracle会发生冲突吗? 请教 各位,我的MSDN为什么打不开? wpf 下的 仿QQ聊天气泡实现原理? java VS c#^-^ ?? 请进 如何将字符串,转换成类的对象名? ArrayList数组去除包含的数组 struct不能定义无参的构造函数,那么new出来的时候是怎么初始化的?
if (B != null)
A += B;
}
楼主的意思是不是:当Connect(A,B)时B还是存在的,不是NULL,但是在执行委托链时,B变成空了是吧?
CONNECT(ref A, B);
B = null //B的对象被delete
if(A != null)A(args); //这样调用没问题A中有多个方法的时候,其中只要有一个B为null, 就会无法if判断导致异常。
CONNECT(ref A, B);
CONNECT(ref A, C);
CONNECT(ref A, D);
B = null //B的对象被delete
if(A != null)A(args); // 这样调用error!!! 如果A -= B;
确实可以解决,但是操作起来太复杂,每次delete对象前还要一个个删除delegate
请问如何简单快捷的消除A中的null
A在 Class X中
B在 Class Y中
希望通过 CONNECT(ref A, B); 来调用 Class Y中的方法
但是中途Class Y 被delete ,B变为null
调用A的时候就会异常。