【问题标题】:how to convert Expression<Action> to Action如何将 Expression<Action> 转换为 Action
【发布时间】:2014-12-17 03:29:29
【问题描述】:

嘿,我想知道我是否可以将表达式转换为动作。 我需要使用表达式来获取 lambda 表达式的详细信息,同时我需要使用不同的方法执行它。我需要使用单个参数(动作或表达式)来获取表达式和实际操作: 顺便说一句,我需要这个来获取关于我做了什么样的断言的详细信息。 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

    }

所以基本上我需要运行动作并且我需要获取它的方法信息。 谢谢~

【问题讨论】:

  • neededAction.Compile()
  • 这正是我所需要的。非常感谢^_^

标签: c# lambda expression action methodinfo


【解决方案1】:

您需要在表达式上调用Compile()

// Compile it.
var actualNeededAction = neededAction.Compile();

// Execute it.
actualNeededAction();

【讨论】:

  • 哦,哎呀。只解决了那里的标题部分......我想我至少会留下这个作为部分答案。
  • 这正是我所需要的。非常感谢^_^
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多