2010-03-05 5 views
4

В основном такой же, как этот вопрос, но в Delphi Prism:В ролях ИНТ для Enum в Delphi Prism

Cast int to enum in C#

мне удалось это сделать из строки:

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

Но я старался ниже, и получить ошибку несоответствия типа:

YourEnum := 3 as YourNum 

Любые идеи, что такое синтаксис f или преобразование int в Enum?

ответ

3

@Robo, то синтаксис для Преобразовать ИНТ на 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. 
+0

Спасибо, очень исчерпывающий ответ. – Robo

 Смежные вопросы

  • Нет связанных вопросов^_^