繁体   English   中英

使用动作执行方法 <T> 使用反射的论点

[英]Execute method with Action<T> argument using Reflection

如何创建Action方法用作以下函数的参数?

public void When(Action<T> action) 
{
    if (internalValue != null)
        action(internalValue);
}

我在方法上有MethodInfo,参数类型如下:

var methods = value.GetType().GetMethods();
MethodInfo mInfo = methods.First(method => method.Name == "When");
Type parameterType = (mInfo.GetParameters()[0]).ParameterType;

但是在那之后,我不知道如何使实际的Action方法作为参数传递,我也不知道如何定义Action方法的主体。

mInfo.Invoke(value,
    delegate(<TheRuntimeTypeOf T> aTinstance)
    {
        // do something on a T
    });

但是请记住,您正在失去通用性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM