public static int _成功订单个数 = 111; private void test(Expression<Func<int,int>> exp) { //这里可以获取_成功订单个数的值111吗? var body = exp.Body as MemberExpression; Console.WriteLine("参数名:" + body.Member.Name); } private void buttonLogin_Click(object sender, EventArgs e) { test(p=>_成功订单个数); }
解决方案
60
exp.Compile()(0);
30
VS里面每个参数看下就应该知道了啊
// // 摘要: // 将表达式树描述的 lambda 表达式编译为可执行代码,并生成表示该 lambda 表达式的委托。 // // 返回结果: // 一个 TDelegate 类型的委托,它表示由 System.Linq.Expressions.Expression`1 描述的已编译的 lambda 表达式。 public TDelegate Compile(); // // 摘要: // 生成表示 lambda 表达式的委托。 // // 参数: // debugInfoGenerator: // 编译器用于标记序列点并批注局部变量的调试信息生成器。 // // 返回结果: // 包含 lambda 的已编译版本的委托。 public TDelegate Compile(DebugInfoGenerator debugInfoGenerator);
10
真是脱了裤子放屁,直接传参的时候把描述和值都传进去不就可以了,非要这么折腾,不知道图的是什么。