可以說我有如果不需要繼續,表達式是否會中斷?
if (textbox.Text != null && textbox.Text.Length > someNum)
{
//some code
}
如果textbox.Text爲空,將它崩潰,因爲null.Length不工作或因爲運營商是& &將其第一個表達式後突破,而且也沒有繼續點?
可以說我有如果不需要繼續,表達式是否會中斷?
if (textbox.Text != null && textbox.Text.Length > someNum)
{
//some code
}
如果textbox.Text爲空,將它崩潰,因爲null.Length不工作或因爲運營商是& &將其第一個表達式後突破,而且也沒有繼續點?
這被稱爲「短路評估」,而C#有它。所以是的,如果textbox.Text
爲空,它將不評估表達式的第二部分。
查看http://msdn.microsoft.com/en-us/library/2a723cdk(v=VS.71).aspx瞭解詳情。
是的,C#發生邏輯短路。 MSDN
第一個表達式被發現是錯誤的,它會中斷。這被稱爲短路(Short Circuiting),它對許多現代語言(如C#和Java)都很常見。
這就是爲什麼在檢查另一個依賴於對象不是null的條件之前檢查null通常是一個好主意首先。
是的。不過,我仍然會將該行分解爲檢查Null:返回或拋出異常。它使代碼更清晰。
謝謝大家幫我澄清! –
不會簡單地運行代碼給你答案? 如果您正在尋找'爲什麼?',那麼您的問題似乎也意識到了這一點...... –