gpt4 book ai didi

c# - bool 表达式,为什么只有两个术语?

转载 作者:太空狗 更新时间:2023-10-29 23:57:48 26 4
gpt4 key购买 nike

鉴于写是有效的

a = b = c = 2;

也不错,不如

bool allTwo = a == 2 && b == 2 && c == 2;

改写

bool allTwo = a == b == c == 2;

但我不能,因为 a == b 求值为 bool 值,不能与整数进行比较。

以这种方式实现是否有语言设计原因?

最佳答案

表达式 a == b 的类型是 bool 值,因此您要么必须打破表达式在任何上下文中都表示相同内容的规则,要么使用 n 元 == 运算符所以 a == b == c 被解析为 (== a b c) 而不是 (== (== a b) c) .这意味着您需要 (a == b) == c 将 bool 值 c 与 (a == b) 的结果进行比较,这没问题,但不是 C# 传统的简单 C 语法风格。

关于c# - bool 表达式,为什么只有两个术语?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3007288/

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