从本质上讲,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)
也就是说,每个方法每个对象或每个类型使用的内存是多少?
实例本身只有一个指向表加载类的方法的指针,因此没有额外的每个实例开销来拥有更多的方法,只有字段.
第二个示例将总共使用稍多的内存,因为您有两个类的定义,因此每个类开销更多(并且最初编写时,使用FooManager作为非静态类,您需要一个FooManager实例),但是每个Foo实例使用的内存是相同的.
归档时间: |
|
查看次数: |
246 次 |
最近记录: |