与这个问题基本相同,但在 Delphi Prism 中:
我设法从字符串中做到这一点:
YourEnum := Enum.Parse(TypeOf(YourEnum), "mystr") as YourEnum
但是我尝试了以下操作,并收到类型不匹配错误:
YourEnum := 3 as YourNum
知道将 int 转换为 Enum 的语法是什么吗?
最佳答案
@Robo,将 int 转换为 Enum 的语法是
YourEnumVar := YourEnum(3);
或
YourEnumVar := Object(3) as YourEnum;
查看此示例
namespace ConsoleAppEnumsDelphiPrism;
interface
type
Language = (Delphi=1,Delphi_Prism,CBuilder);
ConsoleApp = class
public
class method Main;
end;
implementation
class method ConsoleApp.Main;
var
MyEnum : Language;
begin
// String to Enum
MyEnum := Language(Enum.Parse(typeof(Language), 'Delphi_Prism'));
Console.WriteLine(MyEnum.ToString());//Print Delphi_Prism
// Int to Enum
MyEnum:=Language(2);
Console.WriteLine(MyEnum.ToString());//Print Delphi_Prism
// Int to Enum using "as"
MyEnum:= Object(1) as Language;
Console.WriteLine(MyEnum.ToString());//Print Delphi
Console.ReadKey();
end;
end.
关于delphi - 在 Delphi Prism 中将 int 转换为 Enum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2383718/