委托如何获取方法地址



我想知道 c# 中的委托如何获取方法地址
运行时
前无法确定方法地址那么,委托如何计算出内存处的方法地址呢?
幕后工作原理

确实确切地知道,但我认为它的工作方式与旧的 C 相同。

在编译和链接阶段,每个方法都有一个相对于可执行文件开头的固定地址。代码中引用的所有内容的地址都放在 EXE 标头的表中。此表称为"重定位"。

在运行操作系统的阶段,将应用程序加载到可用内存,重新计算重定位表中的所有地址,然后使用新的(绝对)地址修改 EXE 的映像。

实际上,运行的算法有点复杂,详细信息可以在wiki中找到。

最新更新