2011年12月16日 星期五

實值型別

實值型別的執行個體是儲存在一個稱為「堆疊」(Stack)的記憶體區塊。 若與參考型別做比較,因為該區塊就直接包含資料,所以會有較佳的執行效率。 在.NET中,所有實值型別都在16個位元組以下。

一般實值型別可分成以下三種:

參考型別

什麼是參考型別

參考型別是將變數位址 (ponter) 存在 Stack 中,但該變數位圵則指到一塊稱為「堆積(Heap)」 的記憶體區塊,該區塊才是真正資料儲存的地方。

若某個變數是參考型別,當複製該變數時,實際上複製的是另外一份參考,而這個參考會指向 Heap 中同一個記憶體位置。底下範例可看出二者實際上的差異:

類別

在物件導向語言中,大部分的工作都是透過物件來執行。 即使是一個最簡單的應用程式也需要建立一個或多個自訂類別, 然後透過這些類別的屬性(peoperty)和方法(method),去執行與該物件相關的工作。

物件導向有三個主要特性:封裝、繼承、多型。(encapsulation, inheritance, polymorphism)

  • 封裝:類別可以封裝隱藏物件的屬性,必須透過該類別的執行個體及其公開的方法,外界才能存取這些屬性。
  • 繼承:該父層類別公開屬性及方法可以延續到子層類別。
  • 多型:因為繼承關係,讓不同的物件可以對特定的方法重新定義,就導至相同功能,在不同的物件中會有不同的表現。

型別轉換

何謂型別轉換

資料在進行型別轉換時,可分成明確轉換或隱含轉換二種。

  • 明確轉換(explicit conversion):明確指定轉換的型別。
  • 隱含轉換(implicit conversion):由系統自動進行不同型別資料的轉換。