gpt4 book ai didi

c# - 通过字符串将方法名称分配给Func

转载 作者:太空宇宙 更新时间:2023-11-03 18:12:14 27 4
gpt4 key购买 nike

基本上我想这样做:

Func<string> f =  ()=> MyMethodName();


仅具有方法的字符串名称,即:

 Func<string> f =  "MyMethodName";


能做到吗?有什么问题,警告吗?反射能帮上忙吗?我可以先检查一种方法是否存在吗?

最佳答案

您在这里根本不需要lambda表达式。您可以使用Delegate.CreateDelegate

MethodInfo method = GetType().GetMethod(methodName);
Func<string> func = (Func<string>) Delegate.CreateDelegate(typeof(Func<string>),
obj, method);


这样,您可以避免一定程度的间接访问,并且还可以执行反射部分,而不是在每次调用时进行反射。

关于c# - 通过字符串将方法名称分配给Func,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12591988/

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