我有一个名为“DoStuff()”的方法,它的作用是检查复选框是否已选中,如果选中则执行某些操作。
private void DoStuff()
{
if(Checkbox1.isChecked == true)
{
DoSomething();
}
if(Checkbox2.isChecked == true)
{
DoSomething();
}
if(Checkbox3.isChecked == true)
{
DoSomething();
}
}
如何正确设置 boolean 值,这样我就不必为每个 if 语句执行“== true”?
最佳答案
由于复选框可以是三态的(选中、未选中和未确定),因此您必须将 == true
保留在原位,因为 Checkbox.IsChecked
是不能像标准 boolean 值那样简单地进行测试的可空 boolean 值。
即使复选框是双态的并且不能被用户设置为不确定状态 IsChecked
仍然是一个可为空的 boolean 值,因为它可以设置为 null
以编程方式。
在这种情况下,保留现有代码绝对没有坏处。您尝试删除 == true
所做的任何操作都很可能会降低代码的可读性、可维护性并可能降低稳定性。例如,您可以这样做:
if ((bool)Checkbox1.IsChecked)
{
}
但如果复选框处于不确定状态,这将引发 NullReferenceException,因此根本不是好的做法。
关于c# - 如何在 if 语句中正确使用 bool?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41366373/