2010-03-05 72 views
4

基本上与此相同的问题,但在德尔福棱镜:演员int值的枚举德尔福棱镜

Cast int to enum in C#

我设法从一个字符串做:

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

但我试过以下,并得到类型不匹配错误:

YourEnum := 3 as YourNum 

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

回答

3

@Robo的sintax转换为一个int到枚举

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 2010-03-05 04:25:24