我正在创建一个Web表单中的查询字符串,我正在处理可能为null的参数值.有很多方法可以检查和修复这些,但我找到的最优雅的方法如下:
string pass;
pass = "BillabilityDetail.aspx?_startDate=" + _startDate.Text + "&_endDate=" + _endDate.Text +
"&_isContractor=" + _isContractor.SelectedValue + "&_busUnit=" + _busUnit.Text
+ "&_projectUnit=" + _projectUnit.SelectedValue + "&_leadCon=" + _leadCon.Value ?? -1
+ "&_acctExec=" + _acctExec.Value ?? -1 + "&_isBillable=" + _isBillable.SelectedValue +
"&_isActive=" + _isActive.SelectedValue + "&_include=" + _include.SelectedValue;
Run Code Online (Sandbox Code Playgroud)
唯一的问题是......它不起作用.代码到达此部分时,
"&_leadCon=" + _leadCon.Value ?? -1 + "&_acctExec=" + _acctExec.Value ?? -1
Run Code Online (Sandbox Code Playgroud)
字符串停止分配值.所以字符串将以&_leadCon =结束.我知道如何解决这个问题,但我不知道为什么它首先停止工作.有小费吗?
Jam*_*are 14
该+优先级高于??,因此你需要环绕在括号中的空合并表达式.
"&_leadCon=" + (_leadCon.Value ?? -1) + "&_acctExec=" + (_acctExec.Value ?? -1 )
Run Code Online (Sandbox Code Playgroud)
tom*_*ing 11
尝试使用括号来告诉编译器你的意思.
例如:
"&_leadCon=" + (_leadCon.Value ?? -1) + "&_acctExec=" + (_acctExec.Value ?? -1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
283 次 |
| 最近记录: |