【发布时间】:2017-01-31 19:58:46
【问题描述】:
我正在尝试理解别人编写的一段代码的语法。
该方法返回一个布尔值,return 语句如下所示:
return user.UserStatus == Models.User.UserStatuses.Inactive && user.IsLocked;
UserStatuses 是一个枚举。
所以在我看来,它返回了名为 UserStatus 的对象用户的属性,但是 UserStatus 是一个枚举,而不是布尔值,然后 && 将布尔值添加为 user.IsLocked,其中是一个布尔值。
我似乎无法理解这在 c# 中是如何合法的,因为它似乎返回两个参数。
【问题讨论】:
-
return a == b && c 更有意义?
-
它不返回两个参数,它正在检查 user.UserStatus 是否等于 Inactive 状态和 bool 值 user.IsLocked 是否为真(真)。如果两者都为真,则返回真。否则为假
-
user.UserStatus == Models.User.UserStatuses.Inactive是一个布尔值。 UserStatus 是否处于非活动状态。 user.IsLocked 也是一个布尔值。现在你有了boolean&&boolean,这应该是有道理的。 -
所以我可以返回任意数量的布尔值,结果会自动组合成一个布尔值?
-
@Dylan 如果将它们与 && 和 || 等语句结合使用是的,因为最后 expression 仍然返回一个 bool
标签: c#