簡體   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