xamarin - 验证本地存储变量是否存在的正确方法是什么?- 赛马林
问题描述
嗨,我正在做一个具有登录功能的应用程序,即使您关闭该应用程序,它也可以选择让您保持登录状态。
问题是什么?这就是我在 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";
}
这不起作用,因为变量甚至不存在。有任何想法吗?
解决方案
你可以这样检查:
if (Application.Current.Properties.ContainsKey("logStatus"))
{
var statusLog = Application.Current.Properties["logStatus"] as string;
// rest of your code
}
推荐阅读
- html - 适合容器而不溢出身体
- javascript - 从 javascript 加载内容时调用 onclick
- vba - 从网站打开/保存文件的宏
- lisp - 如何使 Lisp 输入区分大小写
- javascript - 如何从JMeter的html脚本标签下的http响应中提取值?
- python - 如何对数据框进行二次采样?
- css - 在使用检查元素识别对象类时遇到问题
- c++ - 使用 c++ boost::python 从 python 函数返回的列表中获取数据?
- ios - 在 UITableView 的控制台窗口中显示 API 数据(右侧)
- typescript - 带有打字稿的可选链接