0
這是一個後續到以前的問題:C# Static event null from within class靜態函數有不同的靜態類變量?
我有這樣一個類:
public class PlaylistModel {
public static event EventHandler PlaylistLoadError;
public static int myInt;
public static void LoadPlaylist()
{
try
{
// do some stuff, simulate exception
throw new InvalidOperationException();
}
catch(InvalidOperationException ex)
{
EventHandler handler = PlaylistLoadError;
if(handler != null)
{
PlaylistLoadError(null, null);
}
}
}
}
其他地方在節目中,我設置了PlaylistLoadError事件處理程序,就像這樣:
public class MainPage {
public MainPage() {
PlaylistModel.PlaylistLoadError += MyErrorHandler;
PlaylistModel.myInt = 5;
}
public static void MyErrorHandler(object sender, EventArgs e)
{
Debug.WriteLine("There was an error");
}
}
現在,在LoadPlaylist中,PlaylistLoadError爲null,myInt爲0,儘管將它們設置在別處。之後,當我創建PlaylistModel的實例時,PlaylistLoadError和myInt是正確的值。所以我的問題是 - 做一個類的靜態函數以某種方式訪問不同版本的靜態類變量?我檢查了靜態變量的內存地址,它們確實不同,具體取決於我是否處於非靜態函數和靜態函數之內。
編號實際重現問題的郵政編碼。 –
?這是重現問題的代碼... – finkonkanonk
不,我無法運行此操作並重現問題。你需要這個:http://sscce.org/ –