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;