当我尝试执行此belo代码时,我收到了该错误。
//代码:
int Value = Convert.ToInt32(Request.QueryString["Value"] == null ? 0 : Request.QueryString["Value"]);
如果QueryString
值为空,我需要传递值'0'。
我该如何解决这个问题?
答案 0 :(得分:5)
int Value = Convert.ToInt32(Request.QueryString["Value"] ?? "0");
答案 1 :(得分: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);
答案 2 :(得分:1)
试试这个
int Value = Convert.ToInt32(Request.QueryString["Value"] == null ? "0" : Request.QueryString["Value"]);
或利用??
运营商
int Value = Convert.ToInt32(Request.QueryString["Value"] ?? "0");
您在三元运算符中的错误和真实陈述应该是相同的类型,或者应该可以隐式转换为另一个。
first_expression和second_expression的类型必须相同,或者从一种类型到另一种类型必须存在隐式转换。
取自msdn
答案 3 :(得分:0)
试试这个:
int i;
int.TryParse(Request.QueryString["Value"], out i);
如果解析失败,i
将具有默认值(0)而没有显式赋值,并检查查询字符串是否为空。