CLR在哪里存储一种类型实例的方法

Iva*_*akh 2 .net c# clr

class MyClass
{
     public string MyProperty { get; set; }

     public void MyMethod()
     {
          //Do something difficult here
          //100500 lines of code here ...
     }
}
Run Code Online (Sandbox Code Playgroud)

我们有很多例子MyClass.

CLR是否MyMethod() 为类的任何实例创建了这个内存非常昂贵的内容

Chr*_*tos 5

不,不是的.当我们第一次调用此方法时,此方法将编译一次.然后编译的代码将由任何类型的实例使用MyClass.因此,只有在第一次调用此方法时,才会发生任何性能损坏,从IL代码将编译为本机代码.

下面,我发布了两张可能更清晰的图片:

在此输入图像描述

在此输入图像描述

有关详细信息,请通过C#查看本书CLR.