否則我有一個用戶對象,我有一個名爲用戶ID變量。測試爲空,一些在同一行的代碼
我想考兩件事情:
- 用戶== NULL
- user.UserID =用戶ID
如果用戶不爲空,否則第二次試驗應只是做了!我有一個運行時錯誤。
我不知道是否有可能在同一行測試兩個,像下面:
return ((user == null) && (user.UserID != userID))
但編碼方式類似於上述方法無效,因爲當用戶爲空我有一個運行時錯誤。
謝謝。
否則我有一個用戶對象,我有一個名爲用戶ID變量。測試爲空,一些在同一行的代碼
我想考兩件事情:
如果用戶不爲空,否則第二次試驗應只是做了!我有一個運行時錯誤。
我不知道是否有可能在同一行測試兩個,像下面:
return ((user == null) && (user.UserID != userID))
但編碼方式類似於上述方法無效,因爲當用戶爲空我有一個運行時錯誤。
謝謝。
我認爲C#和你想要一個布爾值==真,當用戶爲空OR用戶ID與user.UserID不同。所以答案是:
return ((user == null) || (user.UserID != userID));
OR邏輯運算符儘快停止其表達的評價,因爲它發現從最左邊的一個啓動條件爲真。
在用戶是否是空這種情況下,你有你的結果(真),並沒有必要測試第二個條件,因此,你避免空引用異常。
是的,你可以在一行做了檢查,但你應該使用一個or
條件
return ((user == null) || (user.UserID != userID))
我認爲是最容易閱讀的方式是:
如果你想真正如果用戶爲空:
return user == null || user.UserID != userID
如果第一個條件爲滿足(這是真的),然後它不會檢查第二個。
或者,如果你想假如果用戶爲空:
return user != null && user.UserID != userID
如果第一個條件是不滿足(這是假的),那麼就不會檢查第二。的&&
和||
功率=)