0

の宣言です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

そして、何が悪いのかわかりません。

助けてください。

4

1 に答える 1

2

無効なキャスト例外は、それsave_g[cons.term[7]]double. ほとんどの場合、値は null です。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;
于 2013-03-27T21:36:06.630 に答える