簡體   English   中英

非靜態類中的靜態方法的壽命是多少?

[英]What is the Life time of Static methods inside a non static class

我有一個低於工廠的UI類,它負責為視圖創建控件。 我想知道從靜態CreateUI方法創建的這些控件的壽命是多少。

public class UIFactory
{
  public static Control CreateUI (string ControlType)
   { 
     if ControlType == "Date"
      return new dateControl();
   }
}

謝謝

方法沒有生命。 他們在那里。 總是。

(關於延遲加載程序集和即時編譯,可能會有更復雜的解釋,但是對於垃圾收集器而言,它們無關緊要。方法存在 。它們沒有生命周期。它們永遠不會被移除。)

所有實例都具有相同的生存期:直到對它們的最后一個引用超出范圍,然后垃圾回收器將其刪除。

誰創建實例都沒有關系。 只有誰擁有它的引用才重要。 您的方法不會保留對已創建實例的引用,因此調用方將決定生存期(通過唯一引用該實例,直到調用方可以訪問其他人)。

用這種方法創建的對象的生存期將與通過非靜態方法創建的對象的生存期完全相同。 就那么簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM