靜態(tài)類別是我們無法實例化的類別。靜態(tài)類別的唯一也是最重要的目標是放棄繼承類別的藍圖。它是在 C# 中的“static”關鍵字的幫助下創(chuàng)建的。靜態(tài)類別僅包含靜態(tài)成員。我們無法為靜態(tài)類別建立物件。在本主題中,我們將學習 C# 中的靜態(tài)類別。
靜態(tài)成員
C# 中的靜態(tài)類別由兩種靜態(tài)型別組成,如下所示:
1.靜態(tài)資料成員
靜態(tài)資料成員是透過使用 static 關鍵字來聲明的,因為靜態(tài)類別始終包含靜態(tài)資料成員。也可以使用類別名稱直接存取它們。靜態(tài)資料成員的記憶體是單獨分配的,無論其與物件的關係如何。
文法:
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 }
它們在第一次存取靜態(tài)成員之前以及靜態(tài)建構函式(如果呼叫靜態(tài)建構函式)之前進行初始化。為了存取它,我們使用類別的名稱而不是變數(shù)名稱。
2.靜態(tài)方法
使用 static 關鍵字宣告靜態(tài)方法,因為靜態(tài)類別總是包含靜態(tài)方法。這些方法只能存取靜態(tài)資料成員,不能存取非靜態(tài)資料成員。
文法:
static class name_of_class { public static name_of_method() { // code } }
C# 中靜態(tài)類別的範例
以下是下面提到的範例
範例#1
代碼:
/* * 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(); } } } }
輸出:
範例#2
代碼:
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 的靜態(tài)類別。 Book?類別由靜態(tài)資料成員 name、l 和 t 以及一個名為 specs() 的靜態(tài)方法組成。靜態(tài)類別的此方法是透過類別名稱Book來呼叫的。規(guī)格();。由於我們已經(jīng)知道靜態(tài)類別不是由物件組成的,因此 Book 類別的資料成員是透過其類別名稱來存取的,即 Book.name、Book。 l 和 Book.t.
靜態(tài)建構子
與普通建構子(即非靜態(tài)建構子)相比,靜態(tài)建構子基本上用於靜態(tài)資料成員的初始化。
功能/規(guī)則:
- 他們不能擁有任何存取修飾符。
- 它們不能與參數(shù)一起定義。
- 他們無權存取非靜態(tài)資料成員。
靜態(tài)項的記憶體分配
你一定知道應用程式記憶體的基本組成部分是堆疊和堆疊。堆內(nèi)的一個特殊區(qū)域稱為高頻堆,其中儲存靜態(tài)成員。非靜態(tài)類別的靜態(tài)成員也儲存在堆中,然後在該類別的所有實例之間共用。因此,一個實例所做的變更會反映在所有其他實例中。
您一定已經(jīng)知道,靜態(tài)成員只能包含其他靜態(tài)成員,因為無論實例是否創(chuàng)建,靜態(tài)成員都會被呼叫。從今以後,他們將無法存取非靜態(tài)成員。
C# 中靜態(tài)類別的優(yōu)點
- 如果您、我們?nèi)魏纬蓡T作為非靜態(tài)成員,我們將收到錯誤訊息。
- 如果我們嘗試建立靜態(tài)類別的實例,則會再次產(chǎn)生編譯時錯誤,因為靜態(tài)成員可以與其類別名稱一起直接存取。
- 在類別定義中的class關鍵字之前使用static關鍵字來聲明靜態(tài)類別。
- 靜態(tài)類別成員可以透過類別名稱後面跟著成員名稱來存取。
結論
- 我們無法使用 new 關鍵字實例化靜態(tài)類別
- 靜態(tài)項目只能存取其他靜態(tài)項目。考慮靜態(tài)類別僅包含靜態(tài)成員,如變數(shù)、方法等。
- 靜態(tài)方法僅包含靜態(tài)變量,且它們只能存取其餘靜態(tài)項。
- 靜態(tài)項目能夠在多個使用者之間共享資源。
- 我們不能將 static 與索引器、析構函數(shù)或類別以外的類型一起使用。
- 此外,非靜態(tài)類別中的靜態(tài)建構子僅在該類別第一次實例化時運行一次。
- 此外,每當?shù)谝淮卧煸L任何靜態(tài)成員時,靜態(tài)類別中存在的靜態(tài)建構子只會執(zhí)行一次。
- 靜態(tài)成員被分配在記憶體的高頻堆區(qū)域。
以上是C# 中的靜態(tài)類別的詳細內(nèi)容。更多資訊請關注PHP中文網(wǎng)其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

C# 隨機數(shù)產(chǎn)生器指南。在這裡,我們討論隨機數(shù)產(chǎn)生器的工作原理、偽隨機數(shù)和安全數(shù)的概念。

多線程和異步的區(qū)別在於,多線程同時執(zhí)行多個線程,而異步在不阻塞當前線程的情況下執(zhí)行操作。多線程用於計算密集型任務,而異步用於用戶交互操作。多線程的優(yōu)勢是提高計算性能,異步的優(yōu)勢是不阻塞 UI 線程。選擇多線程還是異步取決於任務性質(zhì):計算密集型任務使用多線程,與外部資源交互且需要保持 UI 響應的任務使用異步。

C#和C 的歷史與演變各有特色,未來前景也不同。 1.C 由BjarneStroustrup在1983年發(fā)明,旨在將面向?qū)ο缶幊桃隒語言,其演變歷程包括多次標準化,如C 11引入auto關鍵字和lambda表達式,C 20引入概念和協(xié)程,未來將專注於性能和系統(tǒng)級編程。 2.C#由微軟在2000年發(fā)布,結合C 和Java的優(yōu)點,其演變注重簡潔性和生產(chǎn)力,如C#2.0引入泛型,C#5.0引入異步編程,未來將專注於開發(fā)者的生產(chǎn)力和雲(yún)計算。

可以採用多種方法修改 XML 格式:使用文本編輯器(如 Notepad )進行手工編輯;使用在線或桌面 XML 格式化工具(如 XMLbeautifier)進行自動格式化;使用 XML 轉(zhuǎn)換工具(如 XSLT)定義轉(zhuǎn)換規(guī)則;或者使用編程語言(如 Python)進行解析和操作。修改時需謹慎,並備份原始文件。
