c# 學習筆記05 – struct, enum

c# 支援 struct 和 enum 的語法

結構(struct) 和 類別不一樣的地方是結構以類似數值型態的方式存在的,在傳遞結構時,是直接複製整個結構,而不是像類別是傳遞參考。結構也沒有繼承的機制,所以不能使用 abstrct, virtual 和protected 關鍵字。雖然不能繼承別的類別或是結構,但是可以實作一個以上的介面。
結構的定義方式就像是定義一個類別一樣,可以在結構中定義可以使用的變數和方法,使用的時候,可以選擇是否要用 new 建立一個新的結構,差別在於使用 new 會執行結構中建構式初始化內部的變數,不使用 new 的話,則要自己進行初始化的工作。
結構在宣告的時候,不能同時在宣告 fieid variable 時進行初始化,初始化要在建構子中完成。若 struct 中的變數還沒有進行初始化,也不能直接使用,要先初始化才行。
在結構中的 function 可以使用 static 進行修飾,但是 c# 和 java 不同,若使用 static 進行修飾,呼叫時,一定要使用 className.functionName()


列舉(enumeration) 可以讓程式設計師方面的命名常用的變數。
在 java 中, enum 是類別階層的東西,宣告時是放在其他類別之外,而 c# 則在宣告 enum 是放在類別之內,當成是一個欄位(field)看待。如以下的程式:

class EnumEX {
    public enum computer :  byte {
        CPU, MEMEORY, DISK
    };
}

宣告時可以透過 enum name : type ,透過加上 : 指定所使用的型別,否則預設是使用整數。

Advertisements

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: