0

このベロコードを実行しようとすると、そのエラーが発生します。

//コード:

 int Value = Convert.ToInt32(Request.QueryString["Value"] == null ? 0 : Request.QueryString["Value"]);

QueryStringしたがって、値がnullの場合は値「0」を渡す必要があります。

どうすればこれを解決できますか?

4

4 に答える 4

5
int Value = Convert.ToInt32(Request.QueryString["Value"] ?? "0");
于 2013-09-08T19:59:15.697 に答える
4

文字列を渡すこともできます"0"が、より良い方法は次のとおりです。

int Value = Request.QueryString["Value"] == null ? 0 : Convert.ToInt32(Request.QueryString["Value"]);

また、ルックアップを除外することもできます。

string str = Request.QueryString["Value"];
int value = str == null ? 0 : Convert.ToInt32(str);
于 2013-09-08T20:00:19.880 に答える
1

これを試して

int Value = Convert.ToInt32(Request.QueryString["Value"] == null ? "0" : Request.QueryString["Value"]);

または??オペレーターを利用する

int Value = Convert.ToInt32(Request.QueryString["Value"] ?? "0");

三項演算子の false および true ステートメントは、同じ型であるか、暗黙的に別の型に変換できる必要があります。

first_expression と second_expression の型が同じであるか、一方の型から他方の型への暗黙的な変換が存在する必要があります。

msdnから取得

于 2013-09-08T19:59:22.520 に答える
0

これを試して:

int i;
int.TryParse(Request.QueryString["Value"], out i);

解析が失敗した場合iは、明示的な割り当てとクエリ文字列が null かどうかのチェックなしでデフォルト値 (0) になります。

于 2013-09-08T20:19:57.493 に答える