检查对象是否为空
Checking if an object is null
我正在编写一个 MVC 5 互联网应用程序,我有一个关于在对象中设置某些值之前检查对象是否为 null 的问题。
下面是一些示例代码:
public async Task TestFunction(TestObject obj)
{
obj.name = "Test Name";
repository.Insert(obj);
}
每次调用函数前都要检查对象是否为null吗?是否需要在函数调用中检查对象是否为空?
提前致谢。
这取决于函数的用途,在您的函数的情况下,您似乎将使用它来将对象插入到存储库中,因此将空对象传递到存储库中应该会引发异常,而不仅仅是默默地失败.
您应该检查是否为 null 并在参数为 null 时抛出 ArgumentException
。
public async Task TestFunction(TestObject obj)
{
if(obj == null) {
throw new ArgumentException("obj cannot be null");
}
obj.name = "Test Name";
repository.Insert(obj);
}
然而,在某些情况下,您可以拥有一个可以接受 null 对象的函数,如果您传入它可能会返回默认值。
只是不要这样写代码:
public async Task TestFunction(TestObject obj)
{
if(obj != null) {//if null don't do anything
obj.name = "Test Name";
repository.Insert(obj);
}
}
此方法将不执行任何操作,如果调用它的开发人员没有意识到传递的对象为 null,则它会静默失败而不让开发人员知道发生了什么。
我正在编写一个 MVC 5 互联网应用程序,我有一个关于在对象中设置某些值之前检查对象是否为 null 的问题。
下面是一些示例代码:
public async Task TestFunction(TestObject obj)
{
obj.name = "Test Name";
repository.Insert(obj);
}
每次调用函数前都要检查对象是否为null吗?是否需要在函数调用中检查对象是否为空?
提前致谢。
这取决于函数的用途,在您的函数的情况下,您似乎将使用它来将对象插入到存储库中,因此将空对象传递到存储库中应该会引发异常,而不仅仅是默默地失败.
您应该检查是否为 null 并在参数为 null 时抛出 ArgumentException
。
public async Task TestFunction(TestObject obj)
{
if(obj == null) {
throw new ArgumentException("obj cannot be null");
}
obj.name = "Test Name";
repository.Insert(obj);
}
然而,在某些情况下,您可以拥有一个可以接受 null 对象的函数,如果您传入它可能会返回默认值。
只是不要这样写代码:
public async Task TestFunction(TestObject obj)
{
if(obj != null) {//if null don't do anything
obj.name = "Test Name";
repository.Insert(obj);
}
}
此方法将不执行任何操作,如果调用它的开发人员没有意识到传递的对象为 null,则它会静默失败而不让开发人员知道发生了什么。