在Delphi的case语句中使用类型常量的最优雅(或最不丑陋)的方法是什么?
也就是说,假设您需要声明一个类型化的常量
const MY_CONST: cardinal = $12345678; ...
那么Delphi编译器就不会接受
case MyExpression of MY_CONST: { Do Something }; ... end;
但你需要写
case MyExpression of $12345678: { Do Something }; ... end;
这容易出错,难以更新,也不优雅.
是否有任何技巧可以使编译器插入常量的值(最好通过在源代码中检查const下的常量值,但也可以通过在运行时查找值)?我们假设您不会在运行时更改“常量”的值.
解决方法
根据您为什么需要输入常量,您可以尝试类似的东西
const MY_REAL_CONST = Cardinal($12345678); MY_CONST: Cardinal = MY_REAL_CONST; case MyExpression of MY_REAL_CONST: { Do Something }; ... end;