如何在执行相同功能时避免C#中的短路评估

时间:2010-07-14 08:02:27

标签: c# operators short-circuiting

我们在C#中是否有任何操作员可以避免短路评估并遍历所有条件。

if(txtName.Text.xyz() || txtLastName.Text.xyz())
{

}

public static bool xyz(this TextBox txt)
{
//do some work.
return false;
}

无论获得的输出如何,都应评估所有条件。并且在根据获得的结果评估最后条件之后继续。 ?

2 个答案:

答案 0 :(得分:19)

只需使用一个条形图,无论第一个结果的结果如何,都会评估这两个参数。

if(txtName.Text.xyz() | txtLastName.Text.xyz()) { }

您也可以使用AND执行相同操作,即您可以使用单个&符替换&&以获得与上述相同的效果:

if(txtName.Text.xyz() & txtLastName.Text.xyz()) { } // Both sides will be called

答案 1 :(得分:5)

只需使用一个条;

if(txtName.Text.xyz() | txtLName.Text.xyz())
{

}