如何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