使用更多方法加载类会花费更多内存吗?

Alp*_*der 5 c#

从本质上讲,Foo实例在获取其值时会使用更多内存,如下所示:

public class Foo
{

    internal double bar;

    double GetBar(){ return bar; }

}
Run Code Online (Sandbox Code Playgroud)

或者像这样?

public class Foo
{

    internal double bar;

}  

public static class FooManager
{
    public static double GetBar(Foo foo) { return foo.bar; }
}
Run Code Online (Sandbox Code Playgroud)

也就是说,每个方法每个对象或每个类型使用的内存是多少?

Ran*_*832 6

实例本身只有一个指向表加载类的方法的指针,因此没有额外的每个实例开销来拥有更多的方法,只有字段.

第二个示例将总共使用稍多的内存,因为您有两个类的定义,因此每个类开销更多(并且最初编写时,使用FooManager作为非静态类,您需要一个FooManager实例),但是每个Foo实例使用的内存是相同的.