嗨,我正在做一个具有登录名的应用程序,即使您关闭了该应用程序,它也可以让您保持登录状态。
出什么问题了?这就是我在App.cs中所做的:
var statusLog = Application.Current.Properties["logStatus"].ToString();
if (statusLog == "F")
{
Application.Current.MainPage = new NavigationPage(new LoginPage());
}
else
{
var userStore = (Application.Current.Properties["user"].ToString());
Task.Run(() => lp.GetTokenLogin()).Wait();
MainPage = new NavigationPage(new ConfirmarViatura(userStore));
}
它可以正常工作,但有一种情况是它不起作用,也就是说,如果我在设备中首次运行该应用程序,它会给我一个例外,即本地变量“ logStatus”不存在。 我了解它不存在,但是我该如何进行验证? 我不能这样做:
if (Application.Current.Properties["logStatus"].Equals(null))
{
Application.Current.Properties["logStatus"] = "F";
}
这不起作用,因为变量根本不存在。有什么想法吗?
答案 0 :(得分:2)
您可以通过以下方式进行检查:
if (Application.Current.Properties.ContainsKey("logStatus"))
{
var statusLog = Application.Current.Properties["logStatus"] as string;
// rest of your code
}
答案 1 :(得分:1)
您可以先检查它是否存在,然后再进行逻辑分配。
if (App.Current.Properties.Exists("logStatus"))