在 Delphi Prism 中将 int 转换为 Enum

发布于 2024-08-23 20:45:27 字数 382 浏览 7 评论 0原文

基本上与这个问题相同,但在 Delphi Prism 中:

Cast int to enum in C#

我设法从字符串中做到这一点:

YourEnum := Enum.Parse(TypeOf(YourEnum), "mystr") as YourEnum

但我尝试了以下操作,并收到类型不匹配错误:

YourEnum := 3 as YourNum

任何想法将 int 转换为 Enum 的语法是什么?

Basically the same as this question, but in Delphi Prism:

Cast int to enum in C#

I manage to do it from a string:

YourEnum := Enum.Parse(TypeOf(YourEnum), "mystr") as YourEnum

But I tried the following, and get a type mismatch error:

YourEnum := 3 as YourNum

Any ideas what the syntax is for converting int to Enum?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

幸福不弃 2024-08-30 20:45:27

@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.

@Robo , the sintax for convert an int to Enum is

YourEnumVar := YourEnum(3);

or

YourEnumVar := Object(3) as YourEnum;

see this sample

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.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文