2014-10-30 173 views
-1

我試過搜索這個,但我無法找到明確的答案我的問題。需要澄清C#靜態變量

你什麼時候可以改變一個靜態變量?

從我的理解,你只能在靜態構造函數中改變它。但我不確定,對此的任何幫助將不勝感激。

+2

只要它不是隻讀的非靜態將配發的內存,你可以改變它,只要你想 – 2014-10-30 05:54:31

回答

3
  1. 靜態字段/屬性可根據其可見性(公共,私人,內部等)進行更改。例如,一個私有靜態字段可以被該類的所有實例改變。
  2. 如果一個變量是靜態的,它不是一個成員變量,因爲它不屬於特定的實例。更好地稱他們爲靜態變量(而不是靜態成員變量)
1

如果靜態成員變量不是隻讀的,可變將在分配價值變量的時間來改變。並且它將在應用程序的生命週期中保持不變。

你也不需要任何實例的值賦給變量

0

靜態變量可以相對於訪問權限編輯任何地方。它只是像非靜態變量。但是具有共同的存儲器(類級存儲器)

如果是一個初學者,我將舉一個例子

class Person 
{ 
    static int NumberOfPersons; 
    string name; 
    int age; 
} 

在該上面的例子中單個存儲器必須爲每個人。

但是NumberOfPersons案件是不同的。當新人來到時,您只需將NumberOfPersons加1。如果你沒有爲此保留一個普通的班級變量,你將有很多頭疼,就像你需要去每個對象增量一,內存浪費等。

但是在名稱和年齡的情況下個人記憶是必需的。一個人的名字不應該被另一個對象覆蓋。所以這是非靜態的

理論上 - 靜態將具有共同的內存和負載,而類加載。當對象創建

的希望明確

感謝&問候 Binesh南比亞爾Ç