如何将整数与从枚举中获得的值进行比较?

时间:2012-09-14 17:26:22

标签: c#

我有以下方法和枚举:

public int GetRowType(string pk) 
    {
        return Convert.ToInt32(pk.Substring(2, 2));
    }


public enum CONTENT {
    Menu = 0,
    Article = 1,
    FavoritesList = 2,
    ContentBlock = 3,
    Topic = 6,
    List = 7
};

这里我试图检查我的方法的结果是否等于枚举的值,但是我收到错误:

GetRowType(content) == CONTENT.Topic

有人能就我的错误给我一些建议吗?

Gives me an error: Error    2   
Operator '==' cannot be applied to operands of type 'int' and 'Storage.Constants.CONTENT'

3 个答案:

答案 0 :(得分:6)

只需将枚举值转换为int,显式

GetRowType(content) == (int)CONTENT.Topic

答案 1 :(得分:2)

您必须明确地将枚举转换为int:

(int)CONTENT.Topic

说过你的方法返回枚举可能更有意义(这次显式地将int转换为方法中的枚举)

答案 2 :(得分:1)

整个想法是直接使用枚举。所以要修复你的方法并返回一个枚举而不是一个整数:

public CONTENT GetRowType(string pk) 
{
    int temp = Convert.ToInt32(pk.Substring(2, 2));
    if (Enum.IsDefined(typeof(CONTENT), temp)) 
    { 
        return (CONTENT)temp;
    }
    else throw new IndexOutOfRangeException();
}