不同开发语言下的三元运算符

==========

PB

==========

示例8 下面的代码根据单选钮风格的yes_or_no 列的取值来设置文本的颜色当其值
为Y 时文本颜色设置为红色否则文本颜色设置为黑色
integer color1, default_color
string mod_string, err
color1 = 255 //红色
default_color = 0//黑色
mod_string = "yes_or_no.Color ='"+ String(default_color) &
+ "~tif(yes_or_no=~~'Y~~'," + String(color1)+ "," &
+ String(default_color)+ ")'"
err = dw_emp.Modify(mod_string)
IF err <> "" THEN
MessageBox("状态", &
"修改yes_or_no 列的文本颜色失败出错位置为" + err)
RETURN
END IF

=========

VB

=========

本示例使用 IIf 函数来计算 CheckIt 过程的 TestMe 参数,并且如果参数值大于 1000 则返回字“Large”;否则返回字“Small”。

Function CheckIt (ByVal TestMe As Integer) As String
   CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
==========
C#
==========
?: 运算符称为条件运算符。有时,它也称为三元运算符。 
  
  
conditional-expression:(条件表达式:)
conditional-or-expression(条件或表达式)
conditional-or-expression   ?    expression   :    expression(条件或表达式   ?   表达式   :   表达式)

b ? x : y 形式的条件表达式首先计算条件 b。然后,如果 btrue,则计算 x,并且它成为运算结果。否则计算 y,并且它成为运算结果。条件表达式从不同时计算 xy

条件运算符向右关联,表示运算从右到左分组。例如,a ? b : c ? d : e 形式的表达式按 a ? b : (c ? d : e) 计算。

?: 运算符的第一个操作数必须是可以隐式转换为 bool 的类型的表达式,或者是实现 operator true 的类型的表达式。如果两个要求都不满足,则发生编译时错误。

?: 运算符的第二个和第三个操作数决定了条件表达式的类型。设 XY 为第二个和第三个操作数所属的类型。然后,

  • 如果 XY 的类型相同,则此类型为该条件表达式的类型。
  • 否则,如果存在从 XY 的隐式转换(第 6.1 节),但不存在从 YX 的隐式转换,则 Y 为条件表达式的类型。
  • 否则,如果存在从 YX 的隐式转换(第 6.1 节),但不存在从 XY 的隐式转换,则 X 为条件表达式的类型。
  • 否则,无法确定条件表达式的类型,且发生编译时错误。

b ? x : y 形式的条件表达式的运行时处理包括以下步骤:

  • 首先计算 b,并确定 bbool 值:
    • 如果存在从 b 的类型到 bool 的隐式转换,则执行该隐式转换以产生 bool 值。
    • 否则,调用 b 的类型中定义的 operator true 以产生 bool 值。
  • 如果以上步骤产生的 bool 值为 true,则计算 x 并将其转换为条件表达式的类型,且这成为条件表达式的结果。
  • 否则,计算 y 并将其转换为条件表达式的类型,且这成为条件表达式的结果。

=======

SQL SERVER

=======

IIf

返回由逻辑测试确定的两个数值或字符串值之一。

语法
数字

IIf(«Logical Expression», «Numeric Expression1», «Numeric Expression2»)

如果 «Logical Expression» 取值为 TRUE,则此函数返回 «Numeric Expression1»,否则,返回 «Numeric Expression2»。

字符串

IIf(«Logical Expression», «String Expression1», «String Expression2»)

如果 «Logical Expression» 取值为 TRUE,则此函数返回 «String Expression1»,否则,返回 «String Expression2»。

注释

只有当 «Logical Expression» 的值为零时,才认为该表达式是 FALSE。任何其它值都被解释为 TRUE。

不推荐用 Iif 函数基于搜索条件创建成员的集合。请改用 Filter 函数根据逻辑表达式评估指定集合中的每个成员,然后返回成员的子集合。

示例
数字

如果 Measures.CurrentMember 是空单元,则下面的示例返回 0,否则返回 1:

IIf(IsEmpty(Measures.CurrentMember), 0, 1)
字符串

如果 Measures.CurrentMember 是空单元,则下面的字符串返回字符串 "Yes",否则返回字符串 "No":

IIf(IsEmpty(Measures.CurrentMember), "Yes", "No")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值