在某些情况下删除部分条件
Removing part of condition in some cases
有没有办法根据我是否需要删除 IF
语句中的部分条件。下一个代码是示例,因为在我的代码中有很多用我的语言编写的用户定义函数和过程:
IF A THEN
Q := TQuery.Create(Application);
IF B AND C AND D AND E AND Q.FieldByName('Example').AsInteger = 1 then
BEGIN
...
END
所以,假设在创建 TQuery
之后,我已经将一些数据导入其中(我没有在此处编写那部分代码)。如果 Q
没有创建(因为条件 A 不满足),有没有办法在第二个 IF
语句中删除带有 Q
的部分,或者我必须扭动整个IF
再次声明只是没有 Q
部分?
我正在考虑使用 CASE
之类的东西来检查 Q
是否已创建,如果没有,则跳过该部分句子。可以的话怎么跳过呢?
快速而肮脏的方式
IF B AND C AND D AND E AND (NOT A OR Q.FieldByName('Example').AsInteger = 1) then
请注意,请尽量简化您的 if 条件。
EvaluationRequested := A AND C ...
QueryNeedsAval := NOT A OR ...
if EvaluationRequested AND QueryNeedsAval then
begin
...
end;
有没有办法根据我是否需要删除 IF
语句中的部分条件。下一个代码是示例,因为在我的代码中有很多用我的语言编写的用户定义函数和过程:
IF A THEN
Q := TQuery.Create(Application);
IF B AND C AND D AND E AND Q.FieldByName('Example').AsInteger = 1 then
BEGIN
...
END
所以,假设在创建 TQuery
之后,我已经将一些数据导入其中(我没有在此处编写那部分代码)。如果 Q
没有创建(因为条件 A 不满足),有没有办法在第二个 IF
语句中删除带有 Q
的部分,或者我必须扭动整个IF
再次声明只是没有 Q
部分?
我正在考虑使用 CASE
之类的东西来检查 Q
是否已创建,如果没有,则跳过该部分句子。可以的话怎么跳过呢?
快速而肮脏的方式
IF B AND C AND D AND E AND (NOT A OR Q.FieldByName('Example').AsInteger = 1) then
请注意,请尽量简化您的 if 条件。
EvaluationRequested := A AND C ...
QueryNeedsAval := NOT A OR ...
if EvaluationRequested AND QueryNeedsAval then
begin
...
end;