Как исправить AddressOf требует расслабленного разговора с делегатом ошибка

Извините, это смесь C # и VB.Net

У меня есть класс 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

Есть идеи, как это исправить и почему это вообще выбрасывается? Два делегата / события / метода выглядят достаточно похожими, поэтому я не знаю, почему один в порядке, а другой выдает предупреждение.

6
задан Deduplicator 20 December 2017 в 19:35
поделиться