C# 枚举类型安全吗?
如果不是,会有什么影响?
最佳答案
给出一个稍微不同的答案......虽然从转换的角度来看这些值是类型安全的,但一旦它们被转换它们仍然没有被检查 - 即
enum Foo { A = 1, B = 2, C = 3 }
static void Main()
{
Foo foo = (Foo)500; // works fine
Console.WriteLine(foo); // also fine - shows 500
}
因此,您应该注意检查值 - 例如 default
在switch
抛出异常。
您还可以通过以下方式检查(对于非 [Flags]
值):
bool isValid = Enum.IsDefined(typeof(Foo), foo);
罢工><罢工>罢工>
关于c# - C# 枚举类型安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/208404/