使用建構函式 透過建構子來設定 public class Person { public Person() //建構子 ctor { this.Name = "Initial Name"; } public string Name { get; set; } } 在構造函數中。構造函數的目的是初始化它的資料成員。 使用建構函數,因...
[C# 筆記] 屬性(get/set)對非法值進行限定的三種方法
属性對非法值進行限定 為了防止使用者輸入或傳入非法值,我們往往需要對類別中的屬性進行限定。例如在登入系統中,限定密碼為數字則必須輸入數字,年齡的限定必須為0~120,對於性別的設定必須為男或女,現在介紹三種限定方法。 屬性是用來保護和限定欄位的,屬性的限定一般是set和get方法,其中set方法是在給屬性賦值的時候執行的,而get則是在屬性輸出呼叫的時候使用的。 在類別中,對属性中...
[C# 筆記] 建立屬性(get/set)
所謂的「屬性」就是「用來表示物件靜態的特徵」。 語法 普通屬性 普通屬性 //普通屬性 private int 欄位名稱; //屬性背後的實際欄位(backing field) public int 屬性名稱 { get { return 欄位名稱; } //屬性的讀取方法(getter) set { 欄位名稱 = value; } //屬性的設定方法(sette...
[C# 筆記] 建立物件(Creating Object)
什麼是物件? 所謂的「物件」就是指一個「實際存在」的東西。也就是「可使用的類別執行個體」。 而每個物件都有自己的變數、屬性和方法。 例如:跑車是耍帥必備的行頭,在世界上每一台跑車都是實際的物件,以保時捷911來說,它雖然是跑車,但是它還是屬於「汽車」的一種,擁有一般「汽車」共同的特性,如:四個輪子、方向盤、車大燈、擋風玻璃等等,只是材質和價格與一般汽車不同而已。 因此,我們可以將「汽車...
[C# 筆記] 建立不需要實體化的靜態類別(static class)
什麼是「靜態類別」? 所謂「靜態類別(static class)是指「被宣告成靜態的類別,不用透過new關鍵字來將類別實體化(Instantiated),就能直接取用靜態類別所屬成員的屬性和方法」。 (不用實體化,就可以直接取用。) static 類別基本上與非靜態類別相同,但有一項差異︰無法實體化靜態類別。 換句話說,不能使用 new 來建立類別型別的變數。 因...
[C# 筆記] 宣告類別(Declaring Classes)
什麼是類別? 類別(Class)是用來描述某物件的結構,我們可以將Class視為某 Object 的藍圖,由一群具有相同資料結構與相同物件描述,所形成的集合。 (類別是定義物件的藍圖) 舉例: 若每個「跑車」都是一個物件,那麼什麼是這個物件的類別? 此問題的正解,當然是「汽車」囉,汽車就是跑車的類別。 我們對跑車的物件的了解,汽車的類別裡應該包含哪些東西呢? ...
[C# 筆記] 物件導向(Object-Oriented, OO)基本概念
物件導向的基本概念 何謂「物件導向(Object-Oriented, OO)」? 物件導向是程式實作的方法之一,將程式所要處理的功能與資料歸類於多個物件中的設計方法。(設計方式以「物件」為主) 主要核心 物件導向的核心共有三種: Class(類別) Object(物件) Inheritance(繼承) 重要名詞 物件導向的幾個重要名詞: 類別和物件(C...
[C# 筆記] 自訂例外狀況 (Exception)
C#是一種強型別語言,可以捕捉和處理各種異常,從而幫助我們發現程式中出現的錯誤。在程式開發過程中,如果需要找到特定的錯誤情況並處理,這時就需要建立自訂例外狀況。 雖然可以自行建立例外處理,但不應該藉由例外處理來變更既有的程式流程或用於偵錯。您應該用於處理、紀錄或回報錯誤情況。 1. 什麼是異常? 異常是指在程式執行期間發生的錯誤或異常情況,例如除法中除以0、檔案不存在、記憶...
[C# 筆記] Debug.WriteLine 方法
Debug.WriteLine的方法,可以將debug 訊息在『輸出』視窗觀看。 若想在「即時運算視窗」輸出:工具 > 選項 > 偵錯 > 勾選【將所有輸出視窗文字重新導向到即時運算視窗】。 兩種寫法: 寫 using 不 using,直接打全名(完整的命名空間) 1. 寫 using 寫using,則呼叫時可直接用 Debug.WriteLi...
[C# 筆記] try throw 小技巧
throw; preserves the original stack trace of the exception, which is stored in the Exception.StackTrace property. Opposite to that, throw e; updates the StackTrace property of e. throw, 保...