Lo sentimos, esta es una mezcla de C# y VB.NetCómo fijar AddressOf requiere una conversación relajada al error delegado
tengo una clase C# con con 2 delegados:
public delegate string GetSettingDelegate(string key);
public event GetSettingDelegate GetSettingEvent;
public delegate void SetSettingDelegate(string key, string value);
public event SetSettingDelegate SetSettingEvent;
En un VB clase I agregar controladores al evento:
AddHandler _gisCtrl.SetSettingEvent, AddressOf SetSetting
AddHandler _gisCtrl.GetSettingEvent, AddressOf GetSetting
Cuando tratar de eliminar los controladores:
RemoveHandler _gisCtrl.SetSettingEvent, AddressOf SetSetting
RemoveHandler _gisCtrl.GetSettingEvent, AddressOf GetSetting
SetSetting está bien, pero GetSetting lanza una advertencia:
La expresión AddressOf no tiene ningún efecto en este contexto porque los argumentos del método a AddressOf requiere una conversación relajada con el tipo delagate del evento.
Éstos son los métodos
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
alguna idea de cómo solucionar este problema y por qué se lanza en el primer lugar? Los 2 delegados/eventos/métodos se ven lo suficientemente similares que no sé por qué uno está bien y uno lanza una advertencia.
GetSetting(), como se definió anteriormente, devolvería Object, no String. Creo que Max tiene razón. – rskar
Use Option Strict On para permitir que el compilador detecte este tipo de errores. –