Как исправить AddressOf требует непринужденной беседы с ошибкой делегата - PullRequest
6 голосов
/ 24 мая 2011

Извините, это смесь 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

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

Ответы [ 2 ]

15 голосов
/ 24 мая 2011

вероятно, ваша GetSetting функция должна полностью соответствовать GetSettingDelegate подписи:

Private Function GetSetting(ByVal key As String) as String
6 голосов
/ 24 мая 2011

Ваш VB-код:

Private Function GetSetting(ByVal key As String)

не соответствует определению делегата C #:

public delegate string GetSettingDelegate(string key);

вы должны указать тип возврата в вашей реализации VB, например:

Private Function GetSetting(ByVal key As String) As String
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...