抱歉,这是 C# 和 VB.Net 的混合体
我有一个有 2 个代表的 C# 类:
public delegate string GetSettingDelegate(string key);
public event GetSettingDelegate GetSettingEvent;
public delegate void SetSettingDelegate(string key, string value);
public event SetSettingDelegate SetSettingEvent;
在 VB 类中,我向事件添加处理程序:
AddHandler _gisCtrl.SetSettingEvent, AddressOf SetSetting
AddHandler _gisCtrl.GetSettingEvent, AddressOf GetSetting
当我尝试删除处理程序时:
RemoveHandler _gisCtrl.SetSettingEvent, AddressOf SetSetting
RemoveHandler _gisCtrl.GetSettingEvent, AddressOf GetSetting
SetSetting 可以,但 GetSetting 会引发警告:
AddressOf 表达式在此上下文中无效,因为 AddressOf 的方法参数需要与事件的 delagate 类型进行轻松的对话。
以下是方法
Private Sub SetSetting(ByVal key As String, ByVal value As String)
KernMobileBusinessLayer.[Global].Settings.SetValue(key, value)
End Sub
Private Function GetSetting(ByVal key As String)
Return KernMobileBusinessLayer.[Global].Settings.GetString(key)
End Function
知道如何解决这个问题以及为什么首先抛出它吗?2 个代表/事件/方法看起来很相似,我不知道为什么一个可以,一个会发出警告。