相关疑难解决方法(0)

用于将枚举转换为字符串和返回的通用函数

我正在尝试编写将枚举转换为字符串并再次返回的函数.

即:

TConversions = class
    strict private
    public
      class function StringToEnumeration<T:class>(x:String):T;
      class function EnumerationToString<T:class>(x:T):String;
  end;
Run Code Online (Sandbox Code Playgroud)

在我的实施部分

uses
System.TypInfo
;

class function TConversions.StringToEnumeration<T>(x:String):T;
begin
    Result :=  T(GetEnumValue(TypeInfo(T), x));
end;

class function TConversions.EnumerationToString<T>(x:T):String;
begin
    Result := GetEnumName(TypeInfo(T), integer(x));
end;
Run Code Online (Sandbox Code Playgroud)

问题是,枚举不是T:classpascal中的类型.我也不能用T:record.

帕斯卡可以做到这一点吗?

delphi generics pascal

14
推荐指数
3
解决办法
4145
查看次数

标签 统计

delphi ×1

generics ×1

pascal ×1