Fork me on GitHub

12/20/2009

[C# 筆記] static Keyword

  • Invoked directly from the class level.
  • 沒有必要透過創建一個物件來 invoke 的成員,通常會宣告成 static member,,static member 經常出現在 utility class 當中。
  • 靜態成員只能操作其類別當中的靜態資料或靜態方法,不能操作非靜態成員。
  • 類別當中的靜態資料在記憶體中只佔一個位置,所有的物件都指向該資料
  • static methods can operate only on static data. However, a nonstatic method can
    make use of both static and nonstatic data... 非靜態方法可以 存取/修改 靜態和非靜態資料,可以用來實現單一個物件對靜態資料進行修改,進而同步到每一個物件當中。
  • 靜態建構子: 若類別建構子會重設靜態資料,那麼靜態資料在每一次的物件創見都會被重新設定一次。雖然說你可以在宣告靜態資料的時候就給定初值,但是有時候靜態資料的值是由資料庫或外部檔案所決定,因此有靜態建構子。
    • a static constructor is a special constructor that is an ideal place to initialize the values of static data when the value is not known at compile time
    • The runtime invokes the static constructor when it creates an instance of the class or before accessing the first static member invoked by the caller... 在物件創建之前或者直接存取類別成員
    • The static constructor executes before any instance-level constructors
  • 靜態類別: 當類別被宣告成靜態,便無法用 new 創建物件,也只能包含靜態欄位和靜態成員。

No comments:

Post a Comment