C#中的字节枚举比较

前端之家收集整理的这篇文章主要介绍了C#中的字节枚举比较前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
鉴于此枚举
public enum UserStatus : byte
{
    Approved = 1,Locked = 2,Expire = 3
}

当usr.Status = 1时,为什么这个检查总是返回false

if(usr.Status.Equals(UserStatus.Approved))
    return true;
return false;

比较似乎有效 – 没有编译时错误或运行时异常.请注意我不是这段代码的作者,并且想知道为什么作者选择类型字节的枚举以及为什么它不能正常工作.

解决方法

因为你必须施展.

equals方法将检查UserStatus是否为int(取决于您在属性usr.Status中定义的类型).然后它将返回不是(它是UserStatus类型)因此返回false

更好的代码是:

return usr.Status == (int)UserStatus.Approved;

猜你在找的C#相关文章