gpt4 book ai didi

c# - 如何获取类型中的方法

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

给定:System.Type 实例。

目的是获取类型中新引入的方法(我不知道正确的词),它们是- 不继承- 未被覆盖

我想使用 .NET 反射并尝试了 Type.GetMethods() 方法。但是,它甚至返回继承的和覆盖的。

得到所有方法后想到过滤。我查看了 MethodInfo 类公开的属性/方法。我不知道如何得到我想要的东西。

例如:我有一个类,A 类 { void Foo() { } }

当我调用 typeof(A).GetMethods() 时,我得到 Foo 以及 System.Object 中的方法: 等于ToStringGetTypeGetHashCode。我想将其过滤为仅 Foo

有人知道怎么做吗?

谢谢。

最佳答案

GetMethods 有一个重载,可让您指定 BindingFlags .例如。因此,如果您需要获取所有已声明的公共(public)实例方法,则需要传递相应的标志。

var declaredPublicInstanceMethods = 
typeof(A).GetMethods(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance);

关于c# - 如何获取类型中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9508221/

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