gpt4 book ai didi

c# - 如何通过反射找到重载的方法

转载 作者:太空狗 更新时间:2023-10-29 23:09:42 25 4
gpt4 key购买 nike

这是一个与 another question I asked before 相关的问题.我有一个重载方法:

public void Add<T>(SomeType<T> some) { }

public void Add<T>(AnotherType<T> another) { }

如何通过反射找到每个方法?例如我怎样才能得到 Add<T>(SomeType<T> some)反射法?你能帮我吗?提前致谢。

最佳答案

这里的技巧是描述您希望参数为 SomeType<T> , 其中TAdd 的通用类型方法。

除此之外,它只是关于使用标准反射,就像 CastroXXL 在他的回答中建议的那样。

这是我的做法:

var theMethodISeek = typeof(MyClass).GetMethods()
.Where(m => m.Name == "Add" && m.IsGenericMethodDefinition)
.Where(m =>
{
// the generic T type
var typeT = m.GetGenericArguments()[0];

// SomeType<T>
var someTypeOfT =
typeof(SomeType<>).MakeGenericType(new[] { typeT });

return m.GetParameters().First().ParameterType == someTypeOfT;
})
.First();

关于c# - 如何通过反射找到重载的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10464898/

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