このようないくつかのクラスを考えると:
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();
私は戻ってきます:
- MyMethodOne
- MyVirtualMethodOne
- MyMainClassMethod
- ToString
- 等しい
- GetHashCode
- GetType
最後の4つのメソッドが返されるのを回避するにはどうすればよいですか?myMethods
- ToString
- 等しい
- GetHashCode
- GetType
編集
これまでのところ、このハックは機能していますが、よりクリーンな方法があるかどうか疑問に思っていました。
var exceptonList = new[] { "ToString", "Equals", "GetHashCode", "GetType" };
var methods = myInstanceOfMyType.GetType().GetMethods()
.Select(x => x.Name)
.Except(exceptonList);