我有一个带有下面签名的方法。我进行检查以确保输入不为空。但是,对于作为Action的输入参数,它始终将输入视为null。对Action Type的输入执行此检查的更好方法是什么?
任何建议将不胜感激。
public void DeleteTreeValue(TreeValue treeValue, Action<Exception> callback)
{
if (treeValue == null)
throw new ArgumentNullException("treeValue");
//This is always throwing the ArugmentNullException even when the callback is passed
if (callback == null)
throw new ArgumentNullException("callback");
编辑:这是一个如何被调用的例子。我在调试时可以看到回调中的方法,但是在arg检查中这仍然可以看作是null,这可能是正在发生的事情。
[Test]
public void DeleteValueShouldThowExceptionWhenValueDoesNotExist()
{
var myValue = new TreeValue {TreeValueId = -1};
_dataService.DeleteTreeValue(myValue, exception =>
{
Assert.IsNotNull(exception);
});
}