這篇沒有很深入的紀錄內容,主要是因為工作上看到這些詞覺得疑惑,不太知道該屬性,所以簡單做個紀錄,讓我下次看到相關的程式碼時,可以查找。
類別 class
class
是 C# 的最基本類型。- 類別是以單一單位結合狀態 (欄位) 和動作 (方法及其他函式成員) 的資料結構。
- 類別可以為動態建立的類別「執行個體」(稱為「物件」) 提供定義。
- 類別支援「繼承」和「多型」,這些是可供「衍生類別」 將「基底類別」延伸及特製化的機制。
建立新類別
建立 class 是使用類別宣告來建立。類別宣告的開頭是一個標頭,此標頭會指定類別的屬性和修飾詞、類別的名稱、基底類別 (如果提供),以及類別所實作的介面。 此標頭後面會接著類別主體,此主體是由在 {
與 }
分隔符號之間撰寫的成員宣告清單所組成。
沒錯,官網講得通常都很文言
(看不懂)。
直接看範例程式碼:
1 | public class Point |
翻譯:
一開始要用一個修飾詞當作引介點,之前有提過 C# 進入點只有一個,public
的如字面解釋,就是公開,沒有限制條件就讀取的進入點(後面會有說明)。並使用 class
類別,與自訂義的名稱 point
,並且用一個大括號建立,期內放入要撰寫的程式碼。
屬性
public
:訪問不受限制。protected
:訪問僅限於此類或從此類派生的類。internal
:訪問僅限於當前程式集(.exe
、.dll
等)。protected internal
:訪問僅限於包含類、派生自包含類的類或同一程式集中的類。private
:訪問僅限於此類。private protected
:訪問僅限於從同一程式集中的包含類型派生的包含類或類。
欄位
「欄位」是與類別或類別執行個體關聯的變數。使用 static
修飾詞來宣告的欄位會定義靜態欄位。 靜態欄位只會識別一個儲存位置。無論創建多少個類的實例,靜態欄位只有一個副本。
未使用 static
修飾詞來宣告的欄位會定義執行個體欄位。 每個類別執行個體都包含一個該類別所有執行個體欄位的個別複本。
看完之後只知道
static
是靜態的修飾詞,英文本身意思也是靜態的意思。
後來看到這篇文就有比較了解 static
。
引用一下說明:
用物件導向的方式來解釋用到
static
這個修飾詞時和不使用static
這個修飾詞時意義上的差異:假設今天有一個公開類別名稱叫做「人類」有個方法叫做「賺錢」。
如果賺錢這個方法是靜態方法 則大家賺的錢就是大家的(超爽 der 可以開始耍廢了
如果是非靜態方法,則大家自己賺的錢就是自己的。
所以說使用 static
會影響到其他的程式碼,沒有使用就是自身的影響的程式碼,這跟 JS 的全域與區域變數感覺有點像。 (但前輩叫我不要用 JS 去想 C#)