對不起,這是C#的混合和VB.Net如何解決AddressOf需要一個輕鬆的談話給委託錯誤
我有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 I類添加處理程序的事件:
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個代表/事件/方法看起來非常相似,我不知道爲什麼一個是可以的,而且有一個會引發警告。
GetSetting(),如上定義,將返回Object,而不是String。我認爲馬克斯是對的。 – rskar 2011-05-23 23:08:02
使用Option Strict On讓編譯器捕獲這些錯誤。 – 2011-05-23 23:11:01