【问题标题】:Works on emulator, crashes on device (wp 8)在模拟器上工作,在设备上崩溃(wp 8)
【发布时间】:2013-03-27 21:12:48
【问题描述】:

这是save_g的声明

public static IsolatedStorageSettings save_g = IsolatedStorageSettings.ApplicationSettings;

这里 cons.term[7] 是字符串类型

save_g[cons.term[7]] = (double)save_g[cons.term[7]] + 1;

上面的语句在模拟器上执行没有问题。但是当我在设备(Lumia 820)上运行它时,它会报错。

A first chance exception of type 'System.InvalidCastException' occurred in PhoneApp2.DLL

An exception of type 'System.InvalidCastException' occurred in PhoneApp2.DLL but was not handled in user code

而且我不知道出了什么问题。

请帮忙。

【问题讨论】:

    标签: windows-phone-7 windows-phone-8 isolatedstorage


    【解决方案1】:

    无效转换异常意味着save_g[cons.term[7]] 不是double。该值很可能为空。您应该第一次检查为save_g[cons.term[7]] 赋值的代码部分。

    如果它是您分配此值的唯一位置,您应该添加代码来处理这种情况:

    double value = save_g[cons.term[7]] == null ? 0 : save_g[cons.term[7]];
    save_g[cons.term[7]] = value + 1;
    

    【讨论】:

    • 为了简洁起见,double value = save_g[cons.term[7]] == null ? 0 : save_g[cons.term[7]]; 可以替换为double value = save_g[cons.term[7]] ?? 0;。阅读更多关于??运营商here
    猜你喜欢
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多