2013-03-27 43 views
0

这是save_g工程仿真器上,崩溃上设备(WP 8)

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 

而且我不知道什么是错的。

plz帮助。

回答

2

无效的投射异常意味着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; 
+0

为了简洁的事'双重价值= save_g [cons.term [7]] == NULL ? 0:save_g [cons.term [7]];'可以用'double value = save_g [cons.term [7]]替换? 0;'。阅读更多关于''''运算符[here](http://stackoverflow.com/a/446839/2365197) – 2014-07-25 19:33:37

相关问题