繁体   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