0%

C# 筆記 - 類別

C# ASP.NET

這篇沒有很深入的紀錄內容,主要是因為工作上看到這些詞覺得疑惑,不太知道該屬性,所以簡單做個紀錄,讓我下次看到相關的程式碼時,可以查找。

類別 class

  • class 是 C# 的最基本類型。
  • 類別是以單一單位結合狀態 (欄位) 和動作 (方法及其他函式成員) 的資料結構。
  • 類別可以為動態建立的類別「執行個體」(稱為「物件」) 提供定義。
  • 類別支援「繼承」和「多型」,這些是可供「衍生類別」 將「基底類別」延伸及特製化的機制。

建立新類別

建立 class 是使用類別宣告來建立。類別宣告的開頭是一個標頭,此標頭會指定類別的屬性修飾詞類別的名稱基底類別 (如果提供),以及類別所實作的介面。 此標頭後面會接著類別主體,此主體是由在 {} 分隔符號之間撰寫的成員宣告清單所組成。

沒錯,官網講得通常都很文言 (看不懂)

直接看範例程式碼:

1
2
3
4
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#)