给定一些这样的类:
public class MyBaseClass()
{
public void MyMethodOne()
{
}
public virtual void MyVirtualMethodOne()
{
}
}
public class MyMainClass : MyBaseClass()
{
public void MyMainClassMethod()
{
}
public override void MyVirtualMethodOne()
{
}
}
如果我运行以下命令:
var myMethods= new MyMainClass().GetType().GetMethods();
我回来了:
- 我的方法一
- 我的虚拟方法一
- 我的主类方法
- 字符串
- 等于
- 获取哈希码
- 获取类型
如何避免返回最后 4 种方法myMethods
- 字符串
- 等于
- 获取哈希码
- 获取类型
编辑
到目前为止,这个黑客正在工作,但想知道是否有更清洁的方法:
var exceptonList = new[] { "ToString", "Equals", "GetHashCode", "GetType" };
var methods = myInstanceOfMyType.GetType().GetMethods()
.Select(x => x.Name)
.Except(exceptonList);