我有以下界面
public interface IActionSecureExecuter
{
void SecureExecuteOperation(Action action);
T SecureExecuteOperation<T>(Func<T> action);
}
现在我想模拟实现,以便它执行它作为参数获得的委托。第一种方法非常简单:
m_Executer.SecureExecuteOperation(Arg.Invoke());
但是我对第二个的通用实现有疑问。是否可以用那个 Func 做一些事情,或者我必须为每个 T 做一个设置?恐怕根据那个问题这是不可能的,但我不是 100% 确定。这就是我现在所做的:
private void SetupInvokeAction<T>()
{
m_Executer.SecureExecuteOperation(Arg.InvokeDelegate<Func<T>>());
}
我在每个测试方法中调用这个函数。但我真的很想把它放在设置中。