繁体   English   中英

实例类的静态成员

[英]Static Members of an Instance Class

实例类的静态成员是否只与实例本身一样长,或静态成员是否在应用程序的整个生命周期中存在?

例如,假设我有一个Hashtable作为静态属性。 如果我从一个“实例”添加项目,它们是否可以从另一个“实例”获得?

它们存在于AppDomain整个生命周期中。 (对于Windows应用程序,这通常是过程的生命周期;但可能不是这样,具体取决于您正在做什么。在ASP.NET中定期回收AppDomains 。)

不要将静态变量视为在实例之间共享 - 将它们视为属于类型而不是任何特定实例。 这有助于您在有时从不创建任何实例时更容易理解事物是如何工作的。

例如:

class Test
{
    static int x = 0;

    static void Main()
    {
        x = 10;
        Console.WriteLine(x);
    }
}

没有实例可以“共享” Test.x - 但这没关系,因为它与Test类型相关联,而不是与Test 实例相关联。

你可以说这是一个非常微妙的区别,但它是我发现有用的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM