我正在努力为我的用户提供便利的库.
public interface I { int f(int i); } public class A : I { public int f(int i) { return i * i; } }
static void Main(string[] args) { I obj = new A(); Call(obj.f(3)); }
但我不知道如何将该功能纳入“调用”功能.我的目标是通话是通用的,适用于所有类型!
所以我尝试使用MethodCallExpression,但我真的不知道如何将obj.f(3)转换为MethodCallExpression ….
public void Call(MethodCallExpression expr) { }
非常感谢你的帮助:)
解决方法
这是你在寻找的东西:
static void Main(string[] args) { I obj = new A(); Func<A,int> expression = (a => a.f(3)) Call<A>(expression,obj); } public void Call<T>(MethodCallExpression expr,T data) { expr(data); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。