0

ディクショナリ (文字列、オブジェクト) として定義されたディクショナリがあります。問題なく辞書内の他の値 (文字列) にアクセスしていますが、「int」にアクセスしようとすると問題が発生します。これをコンパイルしようとすると:

            int score = obj["score"] as int;

エラーが表示されます:「'as' 演算子は、null 非許容値型 'int' では使用できません」

喜んで頭を砂の中に突っ込んで、次のように書き直しました。

        int score = (int) obj["score"];

...コンパイルはしますが、実行時に次のエラーが表示されます。

InvalidCastException: ソース タイプから宛先タイプにキャストできません。

誰が私が間違っているのか教えてもらえますか?

4

4 に答える 4

0

Convert.ToInt32(value)、Int32.Parse()、または Int32.TryParse [当たり障りのない提案] を使用することもできます。それらはすべて機能するはずです。

于 2013-09-12T18:11:20.823 に答える
0

このようにしてください:

 int score = Convert.ToInt32(obj["score"]);
于 2013-09-12T18:36:30.030 に答える
0

あなたの値が文字列であると仮定します:

int score = -1;
int.TryParse(obj["score"], out score);

文字列から整数を解析する必要があります。

于 2013-09-12T18:10:08.213 に答える