- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用GetRuntimeMethod
来获取类型不正确的方法。一切正常,但我注意到有一个GetMethod
。两者有什么区别?
this.target.GetType().GetRuntimeMethod(
"MethodName",
new System.Type[0]
)?.Invoke(targetObject, null);
从名称中我只能猜测 GetRuntimeMethod
在程序运行时起作用。 GetMethod
在程序编译期间起作用?
使用其中一种替代另一种有什么优势吗? (这最后一个问题当然可以从答案中推导出两者有什么区别)
最佳答案
GetMethod 适用于 System.Type
,它是 RuntimeType
的抽象基类。 GetRuntimeMethod
在验证类型实际上是 RuntimeType
(而不是(可能是用户定义的)Type
的子级)后调用 GetMethod
>),所以它比 GetMethod
慢。如果未传递从 RuntimeType
派生的类,GetRuntimeMethod
会引发异常。
Type
is an abstract base class that allows multiple implementations. The system will always provide the derived classRuntimeType
. In reflection, all classes beginning with the word Runtime are created only once per object in the system and support comparison operations.
还有this article有关扩展 Type
以及何时可能专门需要 RuntimeType
的更多详细信息。
关于C# GetMethod 与 GetRuntimeMethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56913740/
我正在使用GetRuntimeMethod来获取类型不正确的方法。一切正常,但我注意到有一个GetMethod。两者有什么区别? this.target.GetType().GetRuntimeMet
有没有人知道为什么在以下情况下调用 GetRuntimeMethod 会返回 null? _toListMethod = typeof(Enumerable).GetRuntimeMethod("To
我是一名优秀的程序员,十分优秀!