加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 来自字符串的枚举

发布时间:2020-12-15 09:43:09 所属栏目:大数据 来源:网络整理
导读:鉴于下面的声明,有没有办法从字符串值(例如’one’)中检索枚举值(例如jt_one)? type TJOBTYPEENUM =(jt_one,jt_two,jt_three);CONST JOBTYPEStrings : ARRAY [jt_one..jt_three] OF STRING = ('one','two','three'); 或者我是否需要使用嵌套的if语句创建自
鉴于下面的声明,有没有办法从字符串值(例如’one’)中检索枚举值(例如jt_one)?

type
 TJOBTYPEENUM =(jt_one,jt_two,jt_three);


CONST JOBTYPEStrings : ARRAY [jt_one..jt_three] OF STRING =
     ('one','two','three');

或者我是否需要使用嵌套的if语句创建自己的函数?

注意:我不是在寻找字符串“jt_one”

解决方法

function EnumFromString(const str: string): TJOBTYPEENUM;
begin
  for Result := low(Result) to high(Result) do 
    if JOBTYPEStrings[Result]=str then
      exit;
  raise Exception.CreateFmt('Enum %s not found',[str]);
end;

在实际代码中,您需要使用自己的异常类.如果要允许不区分大小写的匹配,请使用SameText比较字符串.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读