C#包含一个运算符 ? :,称为条件运算符 或 三元运算符。它是 if-else 条件的缩写。
语法一:条件表达式 ?表达式1:表达式2。
说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。
int byteLength = 0;
//发送数据即主站询问报文格式是8个字节,则返回的数据字节长度一定是大于8个字节的
if (iLength % 8 == 0)
{
byteLength = iLength / 8;
}
else
{
byteLength = iLength / 8 + 1;
}
以上代码可以简化为如下代码:
int byteLength = iLength % 8 == 0 ? iLength / 8 : iLength / 8 + 1;
先前说了,它是 if-else 条件的缩写,那么,三元运算符也有嵌套
语法二:条件表达式 ?表达式1:表达式2 ? 表达式3 :表达式4
三元运算符是右关联的。
“条件表达式 ?表达式1:表达式2 ? 表达式3 :表达式4”的计算结果为 “条件表达式 ?表达式1:(表达式2 ? 表达式3 :表达式4)”,先计算括号里的三元运算符表达式。