加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#中的字节枚举比较

发布时间:2020-12-15 18:06:40 所属栏目:百科 来源:网络整理
导读:鉴于此枚举 public enum UserStatus : byte{ Approved = 1,Locked = 2,Expire = 3} 当usr.Status = 1时,为什么这个检查总是返回false if(usr.Status.Equals(UserStatus.Approved)) return true;return false; 比较似乎有效 – 没有编译时错误或运行时异常.请
鉴于此枚举
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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读