C# 我的枚举应被接受为int?

C# 我的枚举应被接受为int?,c#,C#,我有一个filetypeenum: public enum FileType : int { jpeg = 0, png = 1, } 当我尝试比较时,为什么它不能应用于int-type和FileType呢 int type = 1; if( type == FileType.jpeg) 试着铸造它 if((FileType)type == FileType.jpeg) 或 因为转换不是隐式的。C#不会在枚举类型和枚举基类型之间自动转换,因为在许多情况下,这可能会导致程序员

我有一个filetypeenum:

public enum FileType : int
{
    jpeg = 0,
    png = 1,
}
当我尝试比较时,为什么它不能应用于int-type和FileType呢

int type = 1;
if( type == FileType.jpeg)
试着铸造它

if((FileType)type == FileType.jpeg)


因为转换不是隐式的。C#不会在枚举类型和枚举基类型之间自动转换,因为在许多情况下,这可能会导致程序员不期望的行为

请尝试以下方法:

if ((FileType)type == FileType.jpeg)
“文件类型是int,但int不是文件类型。”错误。这两种类型都彼此兼容,并且都可以相互铸造。诀窍在于这两种转换都不是隐式的。(请注意,尽管使用特定基类型声明枚举的语法类似于声明新类型的超类型,但枚举是一种特殊情况。枚举值本质上是枚举基类型的“实例”,具有一些语言和运行时支持,可防止您做不想做的事情。)
if ((FileType)type == FileType.jpeg)