gpt4 book ai didi

c# - 使用 = 和 == 比较 boolean 值与 boolean 变量有什么区别?

转载 作者:搜寻专家 更新时间:2023-11-01 03:57:14 25 4
gpt4 key购买 nike

假设是否存在 boolean 变量状态。假设 status 的值为 false。

我想知道有什么区别

if ( status = true )
{
//block of code
}

if ( status == true )
{
//block of code
}

我试图通过编写示例程序来理解它,第一个 if block 中的代码会针对任何值状态(真或假)执行。

对于其他基本类型,如果我在 if 中只使用一个“=”,系统会抛出编译时错误,以及为什么在 boolean 类型的情况下它不会抛出错误。谢谢。

最佳答案

第一个不是比较,是赋值。它编译通过的原因是它赋值了一个 boolean 值,所以赋值的结果也是一个 boolean 值。

第一个语句为 status 分配一个新值,并根据该新值(在您的情况下为 true)执行 if。第二条语句将status的当前值与右侧的值进行比较,并对比较结果进行操作。

请注意,将 Java 中的 boolean 或 C# 中的 booltruefalse 进行比较绝不是一个好主意code>:你可以使用 if (status) 而不是 if (status == true)if (!status) 而不是 如果(状态 == 假)。但是,这不适用于 C# 中的 nullable 类型,因此将 bool?truefalse 进行比较是通常是个好主意。

关于c# - 使用 = 和 == 比较 boolean 值与 boolean 变量有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14277887/

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