我有以下方法和枚举:
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'
答案 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();
}