我的應用程序有一個名爲CycleManager的單例類。我創建了一個密封類用於此目的的這樣Windows應用程序中的控制流程
public sealed class CycleManager
{
public static readonly CycleManager instance = new CycleManager();
public CycleManager()
{
//ReadFromIsolatedStorage();
}
public static CycleManager Instance
{
get
{
return instance;
}
}
}
而且App.xaml.cs具有下面的代碼
public App()
{
UnhandledException += Application_UnhandledException;
InitializeComponent();
InitializePhoneApplication();
RootFrame.Navigating += new NavigatingCancelEventHandler(RootFrame_Navigating); if (System.Diagnostics.Debugger.IsAttached)
{
Application.Current.Host.Settings.EnableFrameRateCounter = true;
PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
}
}
我已經使用了RootFrame_Navigating()來檢查,如果我需要去到主頁面或登錄頁面。
void RootFrame_Navigating(object sender, NavigatingCancelEventArgs e)
{
//throw new NotImplementedException();
if (e.Uri.ToString().Contains("/RootPage.xaml") != true)
return;
CycleManager pCycMan = CycleManager.instance;
e.Cancel = true;
RootFrame.Dispatcher.BeginInvoke(delegate
{
if (pCycMan.GetPasswordEnabled())
RootFrame.Navigate(new Uri("/PasswordPage.xaml", UriKind.Relative));
else
RootFrame.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
});
}
我所預料的,當一個實例被稱爲RootFrame_Navigating()
但調試向我表明強制的應用程序()constuctor後內Cyclemanager實例將被創建,控制流程進入到循環管理器類,並在CycleManager()構造函數後移動到RootFrame_Navigating。 !有什麼不對嗎,或者我瞭解它錯了嗎?
第二件事是在執行CycleManager pCycMan = CycleManager.instance;
我期待CycleManager中的以下代碼被調用,但令人驚訝的是它沒有。那麼,單身財產如何管理?或每次創建一個新的obj?
public static CycleManager Instance
{
get
{
return instance;
}
}
Alfah
' CycleManager pCycMan = CycleManager.instance;'你的意思是'CycleManager.Instance'? – abhinav