点击或拖拽改变大小

Functions.ICase 方法

X#
评估条件列表中的结果(最多支持100对)。

命名空间:  XSharp.VFP
程序集:  XSharp.VFP (在 XSharp.VFP.dll 中) 版本:2.22 GA
语法
 FUNCTION ICase(
	lCondition,
	eResult,
	lCondition2,
	eResult2,
	eOtherwiseResult
) AS USUAL CLIPPER
查看代码

参数

lCondition (Optional)
类型:__Usual
指定一个逻辑表达式作为条件进行评估。
如果 lCondition 评估为 False (.F.), ICase( ) 将继续评估下一个条件;如果它评估为 True (.T.),返回该条件对应的 eResult。
如果 lCondition 评估为 null (.NULL.),X# 将 lCondition 视为评估为 False (.F.)。
eResult (Optional)
类型:__Usual
指定 lCondition 评估为 True (.T.) 时要返回的结果。
lCondition2 (Optional)
类型:__Usual
指定一个逻辑表达式作为条件进行评估。
如果 lCondition2 评估为 False (.F.),ICase( ) 将继续评估下一个条件;如果它评估为 True (.T.),返回该条件对应的 eResult。
如果 lCondition 评估为 null(.NULL.),X# 将 lCondition 视为评估为 False (.F.)。
eResult2 (Optional)
类型:__Usual
指定 lCondition2 评估为 True (.T.) 时要返回的结果。
eOtherwiseResult (Optional)
类型:__Usual
包含所有条件评估为 False (.F.) 时返回的结果。

返回值

类型:__Usual
ICase( ) 一旦 lCondition 评估为 True (.T.),就返回第一个 eResult。
如果所有条件评估为 False(.F.),ICase( ) 返回 eOtherwiseResult。
如果省略 eOtherwiseResult,并且所有条件评估为 False(.F.),ICase( ) 返回 null (.NULL.)。
备注
您必须始终传递一组两个参数给 ICase( )
如果传递奇数个参数,最后一个参数将被视为 eOtherwiseResult 的返回值。
您可以为 ICase( ) 传递最多 100 对参数。 如果在过滤表达式中使用长的 ICase( ) 表达式, 例如在 FORWHERE 子句中, 请确保 Sys(3055) 设置为适当的复杂性级别,以避免生成错误。
有关更多信息,请参阅 Sys(3055) - FOR 和 WHERE 子句复杂性。
示例
以下示例演示了使用 ICase( ) 评估表达式并根据这些表达式的结果返回某些值的不同场景。 由于第一个表达式评估为 True(.T.),以下代码行显示 "First is true"。
X#
1? ICase(1+1=2,"First is true",1+1=3,"Second is false","None are true")
由于第一个表达式评估为 False (.F.),但第二个表达式评估为 True (.T.),以下代码行显示 "Second is true"。
X#
1? ICase(1+2=2,"First is false",1+2=3,"Second is true","None are true")
由于第一个和第二个表达式评估为 False(.F.),以下代码行显示 "None are true",这是指定的最后一个结果。
X#
1? ICase(1+2=2,"First is false",1+1=3,"Second is false","None are true")
参见