我們是否有C#中的任何運算符,以避免短路評估和遍歷所有條件。如何避免在C#中執行相同功能的短路評估
說
if(txtName.Text.xyz() || txtLastName.Text.xyz())
{
}
public static bool xyz(this TextBox txt)
{
//do some work.
return false;
}
應該不管獲得的輸出的評估所有條件。根據獲得的結果評估最後的條件後繼續。 ?
我們是否有C#中的任何運算符,以避免短路評估和遍歷所有條件。如何避免在C#中執行相同功能的短路評估
說
if(txtName.Text.xyz() || txtLastName.Text.xyz())
{
}
public static bool xyz(this TextBox txt)
{
//do some work.
return false;
}
應該不管獲得的輸出的評估所有條件。根據獲得的結果評估最後的條件後繼續。 ?
只需使用一個條,無論第一個結果的結果如何,它都會評估兩個參數。
if(txtName.Text.xyz() | txtLastName.Text.xyz()) { }
你也可以做同樣的AND,即你可以用一個符號代替&&
得到與上面相同影響:
if(txtName.Text.xyz() & txtLastName.Text.xyz()) { } // Both sides will be called
是的,這是早! – GenericTypeTea 2010-07-14 08:15:51
它也適用於JavaScript嗎? – 2010-07-14 08:35:31
是的,它的工作原理是一樣的。 – GenericTypeTea 2010-07-14 08:52:47
只需用一個單杆;
if(txtName.Text.xyz() | txtLName.Text.xyz())
{
}
爲什麼要評估兩次相同的情況? – 2010-07-14 08:06:21
@Adrian:以此爲例。 xyz函數可以包含任何類型的定義,可以是委託或其他。 – 2010-07-14 08:07:19