Home
R
Cancel

[C# 筆記] 密封類別(Sealed Class)

什麼是密封類別(Sealed Class)? sealed:密封類別,不允許被繼承,但能夠繼承其他的類別。 「密封類別(Sealed Class)」其主要作用在於「限制某一類別不能夠被繼承(衍生)」,一旦類別宣告成「密封類別」,就表示該密封類別不可能有子類別(衍生類別)。 Sealed 密封類別,表示它不能被別人繼承,但它能去繼承別人。 //Sealed 密封類別- 能被別人繼承,但...

[C# 筆記] 抽象類別(Abstract Class)和介面(Interface)有何不同?

抽象類別(Abstract Class)和介面(Interface)有何不同? 相同點: 都可以被繼承 都不能被實體化 (不能new) 都可以包含方法聲明 衍生類別必須實作未實作的方法 區別: 抽象基底類別可以定義欄位、屬性、方法實作。介面只能定義屬性、索引器、事件、和方法聲明,不能包含欄位。 抽象類別是一個不完整的類別,需要進一步細化,而介面是一個行為...

[C# 筆記] 抽象類別(Abstract Class)

「抽象類別(Abstract Class)」只有抽象概念,代表的是,我們不需要在基類(父類)中實現這個方法。 而具體的實現,只能在派生類(子類)中處理。 抽象類別(Abstract Class)就是「只能用來提供給其他類別繼承的基底類別」,它提供一種類似樣版的功能。 抽象類別中,可以實作完整的方法和屬性,也可以像 interface 介面一樣單純宣告方法和屬性的空殼,留待給繼...

[C# 筆記] 實作介面 vs 明確實作介面

實現介面的函數有兩種方式: 實作介面 明確實作所有成員:解決方法重名的問題 MSDN say: 如果沒有強力的理由,要避免明確實作介面成員。 如果成員只要透過介面來呼叫,請考慮明確實作介面成員。 實作介面 如果類別實作兩個具有相同名稱成員的介面,則在類別上實作該成員 會造成這兩個介面都使用該成員進行實作。 所有對 Paint() 的呼叫都會叫用相同的方法...

[C# 筆記] 介面與實作

什麼是介面? 所謂的「介面(Interface)」如同「契約」一般,於介面中所定義的屬性、方法、和事件等,就是契約的大綱。 若要得知這份契約的詳盡內容,則需要透過類別來繼承介面才能完成實作(Implementation)。 而介面本身是不提供實作的。 也就是說,你可以在介面宣告一個個方法名稱MyMethod(),但是此方法的執行內容不能於介面中進行程式碼編寫。 public ...

[C# 筆記] static靜態成員 & 實體成員

心得:只有在完全完全確定一個方法不會有結構調整,與系統中其他部分幾乎沒有關聯時,才可以考慮把它寫成靜態方法。 否則,不要用靜態方法! 靜態方法的三大問題: 問題 1:測試困難 問題 2:不靈活 問題 3:靜態傳染 不必要的記憶體浪費 因為 靜態並非 沒有實體,而是只有一個實體,在程式執行之初就建立,並佔用記憶體位置,而且一直存在 ...

[C# 筆記] Using 作用

using作用: using 指令:引入命名空間 using static 指令:無需指定類型名稱即可存取其靜態成員 using 建立别名 using 語句:將實體與程式碼綁定,結束後自動Dispose,釋放實體資源。(與資料庫互動時常用到) 1. using 指令:引入命名空間 using 用於引入命名空間,以便在程式碼中使用其中定義的類型而不需要使用完全限定的類型...

[C# 筆記] 命名空間(Namespace)

什麼是命名空間(Namespace)? 命名空間(Namenspac)主要功能「用來宣告範圍」。(1).能有效管控專案中的類別和方法的範圍。只要透過 using 關鍵字就可引入命名空間(在一個專案中,引用另一個專案,必須加入參考),就可以使用該命名空間中的定義。(2).能夠加以擴充原有命名空間的功能。例如:宣告using System.IO {}來擴充原有系統IO功能。 用來指明程...

[C# 筆記] 為屬性(get/set)設定初始值

使用建構函式 透過建構子來設定 public class Person { public Person() //建構子 ctor { this.Name = "Initial Name"; } public string Name { get; set; } } 在構造函數中。構造函數的目的是初始化它的資料成員。 使用建構函數,因...

[C# 筆記] 屬性(get/set)對非法值進行限定的三種方法

属性對非法值進行限定 為了防止使用者輸入或傳入非法值,我們往往需要對類別中的屬性進行限定。例如在登入系統中,限定密碼為數字則必須輸入數字,年齡的限定必須為0~120,對於性別的設定必須為男或女,現在介紹三種限定方法。 屬性是用來保護和限定欄位的,屬性的限定一般是set和get方法,其中set方法是在給屬性賦值的時候執行的,而get則是在屬性輸出呼叫的時候使用的。 在類別中,對属性中...