我想知道c#中的委托如何获得方法地址
在运行时之前无法确定方法地址
那么,委托如何在内存中找出方法地址?如何在幕后工作
答案 0 :(得分:-1)
我确实知道,但我认为它的工作方式与旧的C相同。
在编译和链接阶段,每个方法都有一个相对于可执行文件开头的固定地址。您在代码中提到的所有内容的地址都放在EXE标题的表格中。此表称为重定位。
在运行OS的阶段,将应用程序加载到空闲内存,重新计算重定位表中的所有地址,然后用新的(绝对)地址修改EXE的映像。
实际上,运行算法稍微复杂一些,详细信息可以在wiki中找到。