c# - C# 枚举类型安全吗?

标签 c# enums

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
}

因此,您应该注意检查值 - 例如 defaultswitch抛出异常。

您还可以通过以下方式检查(对于非 [Flags] 值):

bool isValid = Enum.IsDefined(typeof(Foo), foo);

<罢工>

关于c# - C# 枚举类型安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/208404/

相关文章:

php - 使用 mysql 中的枚举字段选择行

java - 嵌套 for 循环打印数组列表中的一组值

c# - "INPUT"由于其保护级别而无法访问

c# - 在 foreach 循环中跳过多个值

C# 单元测试

java - 如何在 Swagger 中为数组参数提供内部类型?

c# - 保护 .net 程序集

c# - 如何仅使用 tasks.json 中的一个命令在 VS Code 中构建所有 C# 项目?

c++ - 在声明后定义一个枚举变量

swift - 从 [Any] 获取枚举原始值而不向下转换