所以我有一個Retrieve()函數,要麼得到我一個對象或null(如果沒有找到該對象)。我正在使用帶有該對象的布爾屬性的if語句。它是這樣設置的。有沒有一種巧妙的方法來處理這個空對象引用?
if(Retrieve(index).IsForm == true) {}
這個問題是,如果它沒有找到一個對象,它會拋出一個空引用異常。當然,有一些解決方法,但沒有一個我覺得簡潔。有一個嘗試...趕上,但是當我期望錯誤時,這似乎毫無意義。我可以檢查對象是否爲空,if(Retrieve(index) != null)
,但這似乎是添加不必要的嵌套。有一個聰明的方法來處理這個問題嗎?我想過使用空合併運算符,但在這種情況下它不起作用。
我不認爲有任何更簡潔的方式來做到這一點,沒有。 – Chris
簡潔並不總是最好的方法。可讀性通常要重要得多。 –
根據您的情況,您可以使用空對象模式。看到這個問題http://stackoverflow.com/q/11972281/1066291。 –