如何使用?:运算符
本文关键字:运算符 何使用 | 更新日期: 2023-09-27 18:32:45
我将如何将以下代码转换为使用 ?: 运算符。可能吗?
tbtotalamount.Text = string.Format("{0:n2}", dtl.Compute("sum(NetPay)", ""));
if (tbtotalamount.Text.Length == 0)
{
tbtotalamount.Text = "0";
}
引用
的代码不会受益于使用? :
运算符,该运算符称为条件运算符(有时称为"三元运算符",尽管从技术上讲,它只是一个三元运算符 - 例如,具有三个操作数的运算符)。
通常,当您有一个变量并希望根据条件为其分配两个值之一时,条件运算符很方便。所以以这种形式编写代码:
if (someCondition) {
a = "one value";
}
else {
a = "a different value";
}
可以重写
a = someCondition ? "one value" : "a different value";
但是,在您的情况下,直到您完成string.Format
之后,您才知道tbtotalamount.Text
是空白的,因此您最好将其留给if
。
是的。方法如下:
string test = string.Format("{0:n2}", dtl.Compute("sum(NetPay)", ""));
tbttotalamount.Text = test.length == 0 ? "0" : test;
很抱歉看到这么多反对票,我不熟悉?(三元)运算符也很长时间了。我认为它非常方便。
它的左侧是你的测试表达式,它应该是评估后的布尔值。右侧是运算符返回的内容:如果为 true,它将返回:
左侧的值。如果为 false,则为右侧的值。请注意,整个表达式返回一些东西,编译器需要你对它做一些事情。不能使用三元运算替换调用返回类型为 void
的函数的 if-else 语句。
我想说的是,很多以前从未使用过它的人(像我一样)似乎认为这是一个纯粹的if-else替代品,但事实并非如此。