1

我有以下方法和枚举:

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'
4

3 回答 3

6

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

GetRowType(content) == (int)CONTENT.Topic
于 2012-09-14T17:27:42.277 回答
2

您必须将枚举显式转换为 int:

(int)CONTENT.Topic

话虽如此,您的方法返回枚举可能更有意义(这次将您的 int 显式转换为方法中的枚举)

于 2012-09-14T17:28:19.330 回答
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();
}
于 2012-09-14T17:34:15.680 回答