我在得到的NullReferenceException:測試對象白白和反思
faxnum = Customer.ContactLink.Contact.DefaultFaxLink.Phone.PhoneNumber
空裁判是在DefaultFaxLink。由於沒有傳真號碼,因此DefaultFaxLink未初始化,我知道如果是這樣,我不會在賦值時得到錯誤。
所以,我的問題是,有沒有一種方法可以捕獲異常,而不必測試每個對象,看看它是什麼?
我只是想對待語句的整個右手部分,以便如果任何部分是什麼都沒有,我只是沒有分配任何東西到左var。
簡而言之,我可以在基礎對象上使用反射來評估每個成員及其子成員並分配一個空值嗎?
我知道的多,如果對每個成員,並在try-catch。我試圖不必這樣做,因爲我需要在多個領域做到這一點。有沒有辦法像'C'語言一樣創建宏(像#define)來包裝語句? – user901160
捕獲異常並不是一個好的解決方案,因爲您不一定會知道爲什麼引發異常。我認爲你正試圖爲解決方案簡單的問題找到一個過於聰明的解決方案。任何「聰明」的解決方案都會增加額外的開銷或代碼複雜性,這是不必要的。如果您的目標僅僅是確保這些對象始終存在,那麼只需創建對象即可。懶惰實例化它們,或者在每個類的構造函數中創建它們。 – ulty4life
嗯,你說陷阱的例外不是一個好的解決方案,因爲你不知道爲什麼它被拋出然而在你的函數解決方案中,你仍然不知道哪個屬性是空的,所以我相信它們一樣糟糕 – goughy000