为什么我不能Class.GetMethod(string)
但我可以this.GetType().GetMethod(string)
?
我想做前者,因为它似乎会更快,因为我已经知道我想要搜索哪个类......
答案 0 :(得分:7)
GetMethod
是在Type
课程中声明的方法...而不是您正在查看的课程。 (特别是,该类可以也使用GetMethod
方法,这会使事情显着混淆......)
您可以使用
typeof(Class).GetMethod(...)
但是,不是获取特定实例的类型 - 而是您要找的所有内容吗?
编辑:请注意,GetType(string)
仅在Type
和Assembly
(以及其他一些类型)上声明。普通的Object.GetType()
方法不会有字符串参数。
答案 1 :(得分:2)
答案 2 :(得分:1)
嗯,你可以这样做:
typeof (MyClass).GetMethod("MyMethod");
或
MyClass myClass = new MyClass();
myClass.GetType().GetMethod("MyMethod");
只需添加 - myClass.GetType().GetMethod("MyMethod")
- 在运行时解析,编译时typeof(MyClass).GetMethod("MyMethod")
。
Here还有更多内容。