靜態類別是我們無法實例化的類別。靜態類別的唯一也是最重要的目標是放棄繼承類別的藍圖。它是在 C# 中的“static”關鍵字的幫助下創建的。靜態類別僅包含靜態成員。我們無法為靜態類別建立物件。在本主題中,我們將學習 C# 中的靜態類別。
C# 中的靜態類別由兩種靜態型別組成,如下所示:
靜態資料成員是透過使用 static 關鍵字來聲明的,因為靜態類別始終包含靜態資料成員。也可以使用類別名稱直接存取它們。靜態資料成員的記憶體是單獨分配的,無論其與物件的關係如何。
文法:
static class NameOfClass { public static name_of_datamember; }
範例:
public class Vehicle { public static int Wheels = 4; public static int GasTank { get { return 23; } } public static void move() { } public static event EventType RunOutOfGas; // Extra non-static fields as well as properties }
它們在第一次存取靜態成員之前以及靜態建構函式(如果呼叫靜態建構函式)之前進行初始化。為了存取它,我們使用類別的名稱而不是變數名稱。
使用 static 關鍵字宣告靜態方法,因為靜態類別總是包含靜態方法。這些方法只能存取靜態資料成員,不能存取非靜態資料成員。
文法:
static class name_of_class { public static name_of_method() { // code } }
以下是下面提到的範例
代碼:
/* * C# Program to Check whether the Entered Number is Even or Odd */ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace check1 { class EvenAndOdd { static void Main(string[] args) { int i; if (4 % 2 == 0) // You can enter any number you wish to check for even / odd { Console.Write("Entered Number is an Even Number"); Console.Read(); } else { Console.Write("Entered Number is an Odd Number"); Console.Read(); } } } }
輸出:
代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Text; public static class ABC { // declaration of static Method static void details() { Console.Write("Static Method of the class ABC is"); } } // Inheritance of the class ABC which would give an error since static // class cannot be inherited class ABC2 : ABC { public static void Main(String[] args) { } }
輸出:
說明:在第一個範例中,透過使用 static 關鍵字有一個名為 Book 的靜態類別。 Book 類別由靜態資料成員 name、l 和 t 以及一個名為 specs() 的靜態方法組成。靜態類別的此方法是透過類別名稱Book來呼叫的。規格();。由於我們已經知道靜態類別不是由物件組成的,因此 Book 類別的資料成員是透過其類別名稱來存取的,即 Book.name、Book。 l 和 Book.t.
靜態建構子
與普通建構子(即非靜態建構子)相比,靜態建構子基本上用於靜態資料成員的初始化。
功能/規則:
你一定知道應用程式記憶體的基本組成部分是堆疊和堆疊。堆內的一個特殊區域稱為高頻堆,其中儲存靜態成員。非靜態類別的靜態成員也儲存在堆中,然後在該類別的所有實例之間共用。因此,一個實例所做的變更會反映在所有其他實例中。
您一定已經知道,靜態成員只能包含其他靜態成員,因為無論實例是否創建,靜態成員都會被呼叫。從今以後,他們將無法存取非靜態成員。
以上是C# 中的靜態類別的詳細內容。更多資訊請關注PHP中文網其他相關文章!