当前位置:  开发笔记 > 编程语言 > 正文

Delphi编程中的Enums vs Const vs Class Const

如何解决《Delphi编程中的EnumsvsConstvsClassConst》经验,为你挑选了2个好方法。

我在ClientDataSet中有一个整数字段,我需要比较一些值,如下所示:

我可以使用const

const
  mvValue1 = 1;
  mvValue2 = 2;

if ClientDataSet_Field.AsInteger = mvValue1 then

或者枚举

TMyValues = (mvValue1 = 1, mvValue2 = 2);

if ClientDataSet_Field.AsInteger = Integer(mvValue1) then

或类const

TMyValue = class
const
   Value1 = 1;
   Value2 = 2;
end;

if ClientDataSet_Field.AsInteger = TMyValues.Value1 then

我喜欢类const方法,但似乎不是delphi的方式,所以我想知道你的想法



1> Jim McKeeth..:

宣言:

type
  TMyValues = class
    type TMyEnum = (myValue1, myValue2, myValue3, myValue4);
    const MyStrVals: array [TMyEnum] of string =
      ('One', 'Two', 'Three', 'Four');
    const MyIntVals: array [TMyEnum] of integer =
      (1, 2, 3, 4);
  end;

用法:

if ClientDataSet_Field.AsInteger = TMyValues.MyIntVals[myValue1] then

演员通常是我的最后选择.



2> Steve..:

我不会说类consts不是Delphi方式.最近他们刚刚将它们介绍给Delphi,你在互联网上发现的很多书籍和文章都是在它们推出之前编写的,因此你不会看到它们被广泛使用.许多Delphi开发人员(我会说大多数人)会在Delphi开始使用之前就开始使用Delphi,因此他们不是第一个想到的东西.

推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有