我正在开发通用Windows应用程序,
如果用户重新启动应用程序,我想直接将用户发送到公司屏幕,我使用下面的代码块,但它给了我空引用异常
Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.ApplicationDataCompositeValue composite =(Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["exampleCompositeSetting"];
if (composite == null)
{
// No data
}
else
{
string user = composite["UserId"].ToString();
Frame.Navigate(typeof(Companies));
}
任何人都帮我解决这个问题。
谢谢, SRINIVAS。
答案 0 :(得分:1)
如果没有数据,则为空。
localSettings.Values["exampleCompositeSetting"];
如果将null转换为其他类型,则会出现NullReferenceException。
对此投射使用作为关键字。如果您不熟悉,请阅读“as”和“is”关键字的文档。
Windows.Storage.ApplicationDataCompositeValue composite = localSettings.Values["exampleCompositeSetting"] as (Windows.Storage.ApplicationDataCompositeValue);
如果值为null,它将不会抛出异常,您只需要在使用结果之前检查结果是否为null。
另请参阅此答案:as vs classic casting