gpt4 book ai didi

c# - C# 中的字节枚举比较

转载 作者:太空狗 更新时间:2023-10-29 18:12:34 26 4
gpt4 key购买 nike

给定这个枚举

public enum UserStatus : byte
{
Approved = 1,
Locked = 2,
Expire = 3
}

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

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

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

最佳答案

因为你必须施法。

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

更好的代码是:

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

关于c# - C# 中的字节枚举比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6596330/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com