最近的程序里用到了AddHandler和RemoveHandler,明明参数都是一样的,但是RemoveHandler处却出现了警告:“AddressOf”表达式在此上下文中不起作用,因为“AddressOf”的方法参数需要到该事件的委托类型的宽松转换。将“AddressOf”表达式赋给变量,并使用变量将该方法作为处理程序进行添加或移除。
我在程序里的话就只是普通的:
AddHandler info.code.DataReceived, AddressOf receive
RemoveHandler info.code.DataReceived, AddressOf receive
两个参数都是一样的,不知道为何remove那里会waring
虽然貌似不影响运行,但还是看着不舒服...请问RemoveHandler的标准用法是什么样的,或者说怎样才能避免waring
------解决方案--------------------
将“AddressOf”表达式赋给变量,并使用变量将该方法作为处理程序进行添加或移除。
这里说的很清楚,你需要定义一个变量:
Private h As <事件的委托类型,比如EventHandler>
然后
h = New 事件的委托类型(AddressOf receive)
AddHandler info.code.DataReceived, AddressOf h
RemoveHandler info.code.DataReceived, AddressOf h