2015-03-19 183 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,则它会悄悄地失败没有让开发商知道发生了什么。