我正在尝试编写将枚举转换为字符串并再次返回的函数.
即:
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.
帕斯卡可以做到这一点吗?