如何测试行动<…>是零
本文关键字:是零 何测试 测试 | 更新日期: 2023-09-27 18:14:22
假设我有一个这样的函数:
public void DoSomething(Action<object> something)
{
something(getObject());
}
如果something
为空,则此代码将引发NullReferenceException。
然而,something == null
不会编译,那么我如何测试something
来找出它是否为空?
您应该能够直接针对null进行测试。这个编译得很好:
public void DoSomething(Action<object> something)
{
if (something == null) // Note that there are no () on something
{
throw new ArgumentNullException("something");
}
something(GetObject()); // Assumes `GetObject()` method is available on class, etc
}
if(something == null)
{
throw new ArgumentNullException("something");
}
作为方法的第一个块应该会很好。
你试过了吗:
if(something == null) throw new ArgumentNullException("something");
我看不出为什么这不能编译?
你的"something == null"语句是怎么写的?下面的代码对我来说是编译的,我认为你可以稍微调整一下,让它有合适的if/else条件。
public void DoSomething(Action<object> something)
{
if (something != null)
{
something(getObject());
}
}