如何使用?:运营商

kas*_*hif -5 c# string conditional-operator

如何将以下代码转换为使用?:运算符..是否可能?

tbtotalamount.Text = string.Format("{0:n2}", dtl.Compute("sum(NetPay)", ""));
if (tbtotalamount.Text.Length == 0)
{
    tbtotalamount.Text = "0";
}
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 10

引用的代码不会受益于使用? :运算符,运算符称为条件运算符(有时称为"三元运算符" ,但从技术上讲,它只是一个三元运算符 - 例如,具有三个操作数的运算符).

通常情况下,条件运算符在您拥有变量并且希望根据条件为其分配两个值之一时非常方便.所以这种形式的代码:

if (someCondition) {
    a = "one value";
}
else {
    a = "a different value";
}
Run Code Online (Sandbox Code Playgroud)

可以改写

a = someCondition ? "one value" : "a different value";
Run Code Online (Sandbox Code Playgroud)

但是,在你的情况下,你不知道tbtotalamount.Text在你完成之后它是空白的string.Format,所以你最好把它留下来if.

  • @kashif:欢迎你,很高兴有帮助.(顺便说一句,我不明白这个问题是什么大惊小怪.我投票重新开放了,fwiw.) (2认同)