如何C#或其他语言对于这个问题,处理这两种情况之间的内存分配(和内存重新分配):C#类实例的静态方法VS静态类的内存使用情况
1)上的方法一个静态类被调用。
public Program {
Foo foo = Loader.load();
}
public static Loader {
public static Foo load() {
return new Foo();
}
}
2.)在实例上调用一个方法,然后该方法超出范围。
public Program {
Foo foo = new Loader().load();
}
public Loader {
public Foo load() {
return new Foo();
}
}
我想静态类是加载,并保留在内存中;而类实例在C#闲暇时屈服于垃圾收集。这两种范式有什么优点或缺点?是否有一段时间你有一个永远不需要实例化的类(即某种资源加载器或工厂),但是你仍然使用第二种方法来利用垃圾收集?
我的问题的最重要的部分是,是否第一范式,同时在某些情况下,概念正确,可能不必要地抓着记忆受损。
第二个例子对我来说似乎不正确。调用一个静态方法需要一个以类名作为前缀。例如'Loader.Load()'&** not **'new Loader()。Load()' – shahkalpesh 2010-02-27 17:55:09
你是对的,Shah - 你不需要一个实例来调用静态方法。这是有点:) – 2010-02-27 18:14:05
啊,你们是对的,谢谢,我已经改写它,以了解我试图问的问题的肉。 – jtb 2010-02-27 18:30:56