当我尝试执行此 belo 代码时,我收到了该错误。
//代码:
int Value = Convert.ToInt32(Request.QueryString["Value"] == null ? 0 : Request.QueryString["Value"]);
QueryString
所以如果值为空,我需要传递值'0' 。
我该如何解决这个问题?
当我尝试执行此 belo 代码时,我收到了该错误。
//代码:
int Value = Convert.ToInt32(Request.QueryString["Value"] == null ? 0 : Request.QueryString["Value"]);
QueryString
所以如果值为空,我需要传递值'0' 。
我该如何解决这个问题?
int Value = Convert.ToInt32(Request.QueryString["Value"] ?? "0");
您可以传递字符串"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);
试试这个
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
试试这个:
int i;
int.TryParse(Request.QueryString["Value"], out i);
如果解析将失败i
将具有默认值 (0),无需显式分配并检查查询字符串是否为空。