嘿,我想知道我是否可以将表达式转换为动作。 我需要使用Expression来获取lambda表达式的细节,同时我需要使用不同的方法执行它。我需要使用单个参数(Action或Expression)获取Expression和实际操作: 顺便说一句,我需要这个来获取我所做的断言的详细信息。 ex(Assert.true,Assert.False)
public void otherMethod()
{
SomeMethod(() => Assert.Equals("Dog","Cat"));
}
public void SomeMethod(Expression<Action> neededAction) //or public void SomeMethod(Action neededAction)
{
//i need to run the neededAction and get the details whether what assert i did and the inputs i used for the assertion
}
所以基本上我需要运行Action,我需要获取它的方法信息。 感谢〜
答案 0 :(得分:1)
您需要在表达式上调用Compile()
。
// Compile it.
var actualNeededAction = neededAction.Compile();
// Execute it.
actualNeededAction();