首頁  >  文章  >  後端開發  >  C# 中的靜態建構函數

C# 中的靜態建構函數

王林
王林原創
2024-09-03 15:12:52506瀏覽

C# 中的靜態建構子是僅在建立類別中實作的靜態成員的參考期間呼叫一次的建構子。靜態建構函數的主要功能是初始化類別的靜態成員,並且僅執行一次。顧名思義,靜態建構函數不允許使用者明確控制,而是在呼叫類別的實例時自動執行,此外,靜態建構子在其定義中不帶任何參數或存取聲明,因此它可以不被直接呼叫。靜態建構子不能被繼承或重載,只能由 CLR(公共語言執行時期)存取。

C# 中靜態建構子的特點與用途

以下是C#中靜態建構子的一些特性和使用的詳細解釋:

靜態建構子的功能

以下功能描述了靜態建構子:

  • 使用者在執行時對靜態建構子沒有任何控制權。這些是在預編譯之前在程式碼中預先定義的,並且該值在整個持續時間內保持固定。
  • 靜態建構函式操作可以進一步分為兩個階段,即靜態資料成員初始化和靜態操作執行,它們按定義的順序發生。
  • 靜態方法在其定義中沒有任何存取修飾符,因此不能被程式中的其他元件呼叫。

靜態建構子的用途

靜態建構子主要用於日誌程序,用於寫入在每個實例期間初始化的參數條目。靜態建構函數是建立資料庫連接的理想位置,因為它們首先載入並始終保持靜態。在 C# 程式語言中,靜態建構子遵循以下語法。

文法:

class ABC
{
//defining the static constructor using the same name as class
static ABC()
{
//constructor specific code comes here
}
}

靜態建構子在 C# 如何運作?

以下是 C# 中靜態建構子的一些基本工作原理:

  • 當類別或類別的物件被建立為結構體時,將呼叫建構函式來建立與該類別關聯的資料成員。這些建構子與類別具有相同的名稱。
  • 為了理解靜態建構子的概念,我們首先需要理解靜態方法和類別背後的概念。
  • 靜態類別與常規類別不同,因為靜態類別無法實例化,也就是不能使用 new 關鍵字建立類別的新實例。
  • 因此無法使用新實例存取該類,需要透過靜態類名本身來呼叫。這些類別用於處理輸入欄位並操作以建立輸入參數的初始值和固定值。
  • 顧名思義,靜態建構函式用於設定或初始化類別建構的預渲染階段所需的任何靜態資料。在創建類別的第一個實例或尋找任何靜態成員的參考之前呼叫靜態建構函數。
  • 因此,可以將靜態建構函式定義為在執行時建立的類別的第一個實例,這也是單次發生事件,不會再次重複。

實作靜態建構子的範例

以下是 C# 中靜態建構子的一些範例:

範例#1

代碼:

using System;
namespace HappyConstructor {
class Happy {
//let us declare and initialise the static data members
private static int id = 7;
public static int Id {
get {
return id;
}
}
public static void printVariable() {
Console.WriteLine("Happy.id = " + id);
}
static void Main(string[] args) {
//let us print the value of ID from the class
Happy. printVariable ();
}
}
}

輸出:

C# 中的靜態建構函數

說明:上面宣告了靜態成員id並初始化為初始值10。

範例#2

代碼:

using System;
namespace Happy1Constructor {
class Happy1 {
private static int Id;
//data member (id) is set conditionally here to show actions of a Static constructor
static Happy1 () {
if (Happy1.Id < 10) {
Id = 25;
} else {
Id = 1000;
}
Console.WriteLine("Static Constructor for Class Happy Called..");
}
public static void print() {
Console.WriteLine("Happy1.Id = " + Id);
}
public static void Main(string[] args) {
// the value of Id is displayed as
Happy1.print();
}
}
}

輸出:

C# 中的靜態建構函數

說明: 在上面的範例中,建構子有條件地依賴 example1 中產生的 Happy.cs 檔案。這裡靜態建構函式初始化自身。由於第一種情況下產生的 Id 欄位的值是 7,且根據條件運算符,如果該欄位的值小於 10,則 Happy1 建構函數的 Id 欄位的值應為 25。這是一個經典範例在載入類別的第一個實例時初始化靜態建構子。靜態建構函式利用此功能來預先載入程式引用的輸入參數。

結論

靜態建構函式用於初始化任何靜態資料和/或執行需要為程式執行一次且僅一次的任何特定操作。在啟動類別的任何物件或將任何成員載入到執行時間環境之前呼叫此建構函式。

以上是C# 中的靜態建構函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn