靜態成員怎麼賦值
C#核心開發-第11單元-類和物件-第5節:靜態類
C#核心開發-類和物件
1。 基本概念
在。NET應用程式中,使用C#開發,少不了使用靜態類。首先理解清楚什麼是靜態,靜態是相對於例項的,前面我們講解的類,就是例項的類。例項的類,只需要使用class關鍵字定義即可,例項的類必須使用new關鍵字生成物件才可以使用。
那什麼是C#靜態的類呢?
我們可以這樣理解靜態,比如說我們建立了一個學生類,學生共同的特徵有姓名、身高、年齡等屬性資訊,這些屬性每個具體的學生都有,但值不同,有的21歲,有的22歲等,由於這些值不同,所以需要是例項的,也就是例項化成具體的物件,體現出不同的學生個體。
但這些學生有一個共同的屬性,且值也是相同的,如班級號,學校名稱。如果也將班級號、學校放在例項物件中,則會造成重複浪費,所有的學生個體中都有一個班級號,且值是相同的。
此時,為了解決這個浪費的問題,可以使用C#靜態來實現,將所有具體的物件具有共同屬性,且值也相同單獨拿出來,當成靜態的,這樣靜態的可供所有物件訪問,這樣就存在一個班級號即可,所有學生共享。
2。 定義
C#類也可以定義為靜態的,供所有其它的例項類使用。
C#靜態類的定義只需要在定義例項類時,新增static關鍵字即可,在VS2019中建立一個。NET控制檯應用程式,並編寫如下C#程式碼:
圖1
在圖1中就定義了一個靜態類,靜態類無需例項化,直接使用類名就可以訪問其中的成員。
那C#中的靜態類可以包括哪些成員呢?
只要能包括在非靜態類中的成員,如屬性、欄位、建構函式、變數等,都可以在靜態類中出現。
只是靜態類,在使用時,不需要例項化,也就是不需要使用new關鍵字。如圖1的Common靜態類,我們新增一個屬性:
static class Common
{
public static string Name { get; set; }
}
在上面的C#程式碼中,給Common靜態類添加了一個靜態的Name屬性。
注意:靜態類中定義的所有成員,也必須是靜態的,所以也需要新增static關鍵字。
那如何呼叫Name屬性呢?我們在Main()方法中呼叫一下:
圖1
在圖2中,我們只需要將靜態類的名稱打出來,然後在列表中就能發現其中的Name屬性:
class Program
{
static void Main(string[] args)
{
//賦值
Common。Name = “小強”;
//取值
string name = Common。Name;
//輸出
Console。WriteLine(name);
Console。ReadKey();
}
}
從此C#程式碼上看,我們並沒有使用new關鍵字例項化Common靜態類,而是直接使用類名打點呼叫的成員。這就是靜態類的基本使用。
C#高階程式設計(第11版) C# 7 & 。NET Core 2。0(。NET開發經典名著)
檢視