gpt4 book ai didi

.net - 如何通过 C# 中的反射调用采用 'method group' 的方法,即。 Action <>或功能<>

转载 作者:行者123 更新时间:2023-12-04 05:52:16 25 4
gpt4 key购买 nike

我有一个带有此签名的方法,以及另一个将用作操作的方法

ProcessFile(Uri uri, Action<Uri> callWhenDone);

void WhenDone(Uri uri);

现在我正在尝试在 MethodInfo ( msdn ) 上使用 Invoke 方法。但是参数是和对象数组。不接受“方法组”。
var methodInfo = myClass.GetType().GetMethod("nameOfMethod");

var methodParams = new object { new Uri(), WhenDone }; //<-- unable to just do this

methodInfo.Invoke(myClass, methodParams);

如何使用 Invoke 或类似方法将方法组或委托(delegate)传递给 ProcessFile 方法?

最佳答案

试试这个:

var methodParams = new object { new Uri(), (Action<Uri>)((u) => WhenDone(u)) }; 

或者
var methodParams = new object { new Uri(), (Action<Uri>)WhenDone }; 

关于.net - 如何通过 C# 中的反射调用采用 'method group' 的方法,即。 Action <>或功能<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9941730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com