【发布时间】:2012-10-25 22:06:25
【问题描述】:
我在几乎所有项目中都多次使用过这种场景,当我进行某种数据转换时,当涉及到布尔值时,在简化它时我有点迷茫。下面的这句话在我的代码中就像一个酸痛的拇指一样突出:
if BoolVal then
StrVal:= 'True'
else
StrVal:= 'False';
我想知道是否有更简单的方法来执行此评估?也许使用了我不知道的Case 声明?我的实际实现比StrVal 更复杂,但它确实包括返回两个不同的值,具体取决于它是真还是假。例如,这里有一些真实的代码......
if fsBold in Can.Font.Style then
ConvertTo(AddSomeOtherText + 'True')
else
ConvertTo(AddSomeOtherText + 'False');
这只是为了强调我希望的简单。我想知道我是否可以按照以下方式做一些事情:
ConvertTo(AddSomeOtherText + BoolToStrCase((fsBold in Can.Font.Style), 'True', 'False'));
我确定这不是一个真正的命令,但我正在寻找一行代码中的那种简单性。
【问题讨论】:
-
好吧,这不是真正的“真实”代码,只是作为一个例子,我讨厌为每个布尔评估重复代码。
-
你的语言支持三元运算符吗? StrVal =:布尔值? “真”:“假”
-
奇怪的是,我看到 StackOverflow 上与 Delphi 相关的确切问题也是在询问如何使布尔比较变得简单。完全不同的问题有不同的答案,但他们都是背靠背......
标签: delphi boolean type-conversion delphi-xe2