gpt4 book ai didi

c# - 优化获取 "get_Item"MethodInfo的方式

转载 作者:太空狗 更新时间:2023-10-29 21:24:53 29 4
gpt4 key购买 nike

现在,我有:targetType.GetMethod("get_Item", BindingFlags.Instance)

还有更好的吗?

最佳答案

我更喜欢使用 PropertyInfo.GetIndexParameters :

var indexers = targetType.GetProperties(bindingFlags)
.Where(p => p.GetIndexParameters().Any());
.Select(p => p.GetGetMethod());

现在indexers是一个 IEnumerable<MethodInfo>与指定的 BindingFlags 匹配的索引器的 getter 数量在 bindingFlags 中给出.

注意代码是如何从 targetType 读取的, 获取匹配 bindingFlags 的属性,取那些是索引器的,然后转换到 setter/getter 。它比使用魔术字符串 "get_Item" 神秘得多,并且可以轻松处理多个索引器。

如果您知道只有一个,您当然可以使用 Single .如果您正在寻找许多特定的一个,您可以检查 GetIndexParameters 的结果。相应地。

关于c# - 优化获取 "get_Item"MethodInfo的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4952070/

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