假设是否存在 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# 中的 bool
与 true
或 false
进行比较绝不是一个好主意code>:你可以使用 if (status)
而不是 if (status == true)
和 if (!status)
而不是 如果(状态 == 假)
。但是,这不适用于 C# 中的 nullable 类型,因此将 bool?
与 true
或 false
进行比较是通常是个好主意。
关于c# - 使用 = 和 == 比较 boolean 值与 boolean 变量有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14277887/