2014-01-21 47 views
0

我有一个自定义类型叫ScaleGroup。我试图解析出数据(完成),然后将其转换为ScaleGroup进行比较。 ScaleGroup是enum。我发现这种方法在线转换,但它不工作。我如何获得转换?在Int32和枚举之间转换

这是我喜欢的类型声明

public ScaleGroup ScaleGroup { get; set; } 

这里是我需要它从Int32ScaleGroup

int num = Convert.ToInt32(ld.ScaleGroup); 
int secondDigit = num % 10; 
ld.ScaleGroup = (ScaleGroup)Convert.ChangeType(
     secondDigit, typeof(ScaleGroup));//problem spot 

ScaleGroup声明改变:现在我们知道

public enum ScaleGroup 
{ 
    GROUP_1 = 1, 
    GROUP_2 = 2, 
    BOTH = 3 
} 
+4

而不是使用'Convert.ChangeType',为什么不为'ScaleGroup'提供一个'int'参数的构造函数? –

+0

@JonSkeet自从我解析 –

+0

@JonSkeet后,我没有想过它在读者中如何做到这一点? –

回答

3

ScaleGroup不是一类,但一个枚举,它很简单:

int num = (int) ld.ScaleGroup; 
int secondDigit = num % 10; 
ld.ScaleGroup = (ScaleGroup) secondDigit; 

(目前尚不清楚,我认为这实际上你想要什么,给你的枚举声明,但将执行相关转换... )

+0

这样做!我的同事用简单的语言来表达这个枚举是什么意思? –

+1

你应该问你的同事它的用途......我不知道你在做什么。 –