2015-03-19 154 views
0

我正在編寫一個MVC 5互聯網應用程序,並且在設置對象中的某些值之前,我有一個關於檢查對象是否爲null的問題。檢查一個對象是否爲空

下面是一些示例代碼:

public async Task TestFunction(TestObject obj) 
{ 
    obj.name = "Test Name"; 
    repository.Insert(obj); 
} 

應該檢查,看是否對象爲空每次函數調用之前做了什麼?是否有任何需要檢查函數調用中的對象是否爲空?

在此先感謝。

+0

使用方法檢查似乎更容易管理。 – Adil 2015-03-19 05:53:26

+0

在方法調用裏面? – user3736648 2015-03-19 05:53:54

+0

TestFunction – Adil 2015-03-19 05:54:39

回答

0

它取決於功能的目的,在你的功能情況下,它看起來像你將用它來插入對象到存儲庫中,因此傳遞一個空對象到存儲庫中應該引發一個異常,而不僅僅是在靜靜地失敗。我的意思是你不應該檢查null,如果他們傳遞null,它會拋出一個NullReferenceException,提醒開發者該對象不應該爲null。

但是有些情況下,你可以有一個可以接受空的對象,如果你通過它可能返回默認值的函數的情況。

一般來說,如果傳遞一個空對象是意外的行爲,則不要檢查null並且拋出異常,如果傳遞一個空對象,並且可以用一種特殊的方式處理它,然後檢查它並對它做些什麼。

只是不要像這樣寫代碼:

public async Task TestFunction(TestObject obj) 
{ 
    if(obj != null) {//if null don't do anything 
     obj.name = "Test Name"; 
     repository.Insert(obj); 
    } 
} 

這種方法將什麼也不做,如果開發商稱它沒有意識到,傳遞的對象爲null,則它會悄悄地失敗沒有讓開發商知道發生了什麼。