小编Kit*_*Net的帖子

C# 枚举始终为空

在 C# 中,我有以下枚举。我希望能够运行我的验证函数并返回通过所述枚举发现的问题,但它似乎总是包含 OK。

我读到的所有内容都说使用 0 表示无,至少对我来说,这在逻辑上似乎等同于 OK,因为不存在“无”问题。但如果我检查“enum.HasFlag(ValidationResult.OK)”,它将 100% 地返回 true,无论设置了多少其他值。我觉得如果它不等于0,就不应该说它等于。这对我来说似乎很糟糕。

处理这个问题的正确方法是什么?

[Flags]
public enum ValidationResult
{
    OK,
    NotOK,
    ReallyNotOk
}
Run Code Online (Sandbox Code Playgroud)
void Main()
{
    var x = ValidationResult.OK;
    Console.Write(x.HasFlag(ValidationResult.OK)); // true
    
    
    var y = ValidationResult.NotOk;
    Console.Write(y.HasFlag(ValidationResult.OK)); // still true for some reason
}
Run Code Online (Sandbox Code Playgroud)

c# enums flags

0
推荐指数
1
解决办法
108
查看次数

标签 统计

c# ×1

enums ×1

flags ×1