【发布时间】:2015-05-02 12:07:04
【问题描述】:
代码示例:
public class A{
public void Check(bool condition){
Console.WriteLine(???);
}
public void Test_1(){
Check(2 > 3);
}
public void Test_2(){
int x=3;
Check(x != 6);
}
}
我需要在方法检查中写入控制台不是参数条件的值,而是它的原始表达式。例如,当在程序中调用方法 Test_1 时,我想在控制台“2 > 3”上看到。当在程序中调用 Test_2 方法时,我希望在控制台“x!= 6”上看到。
【问题讨论】:
-
将表达式传递给Check方法中的字符串类型参数
-
正如@Adil 所说,现在Check 只接收“true”或“false”,仅此而已。
-
您可以将条件作为 lambda 传递,然后使用
Expression将 lambda 的主体转换为字符串。 -
旁注:查看Fluent Assertions,这可能就是您所追求的。
-
这听起来像
xy问题。为什么需要方法参数值?您无法从反射中获取方法参数值。您必须使用调试/分析 API。您可以获取参数名称和类型,但不能获取参数本身。
标签: c# methods parameter-passing