申し訳ありませんが、これは 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 へのメソッド引数が、イベントのデリゲート型との会話を緩和する必要があるためです。
ここに方法があります
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 つのデリゲート/イベント/メソッドはよく似ているため、一方が問題なく、一方が警告をスローする理由がわかりません。