0

当我尝试执行此 belo 代码时,我收到了该错误。

//代码:

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

QueryString所以如果值为空,我需要传递值'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将具有默认值 (0),无需显式分配并检查查询字符串是否为空。

于 2013-09-08T20:19:57.493 回答