以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Dot NET,C#,ASP,VB 』  (http://bbs.xml.org.cn/list.asp?boardid=43)
----  DotNet中委托的一个不足  (http://bbs.xml.org.cn/dispbbs.asp?boardid=43&rootid=&id=16549)


--  作者:supnate
--  发布时间:4/4/2005 12:09:00 AM

--  DotNet中委托的一个不足
众所周知,现在的委托都是继承自MultiDelegate,存在一个委托链表,可以往里面添加同一类的委托对象,
但调用委托链时只会返回最后一个委托的返回值,
以前一直觉得没什么问题的,毕竟大多数这类方法是用作一些处理,没有返回值或者返回值可以忽略,
但今天遇到一个应用却出现问题了,我的一个类需要一个外部提供的验证器,只有所有验证器都为真时才认为通过验证,现在的实现只能支持最后一个验证器返回值有效,我就想要是能得到所有返回值就好了,就可以提供多个验证器,而且彼此间相对独立,这样就可以用这样的语句完成验证:
bool IsValid=true;
if(feedback!=null)IsValid=IsValid && feedback();
显然这样的语句是不能按照我的意图执行的,呵呵
要是feedback()能每调用一个委托就返回一次值就爽了
不知道微软在底下的版本中会不会考虑到呢。。



W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
54.688ms