第4章 類型、存儲和變量 筆記
4.1 C# 程序是一組類型聲明
C程序是一組函數和數據類型,C++程序是一組函數和類,
而C#程序是一組類型聲明,具有如下特征:
- C# 程序或 DLL 的源代碼是一組類型聲明
- 類型聲明中必須有一個包含 Main 方法的類
- 命名空間是一種將相關的類型聲明分組并命名的方法。
代碼示例:
// Declare a namespace.
namespace MyProgram
{// Declare a type.DeclarationOfTypeA;// Declare a type.DeclarationOfTypeB;// Declare a type.class C {static void Main(){// ...}}
}
4.2 類型是一種模板
4.3 實例化類型
C# 程序中,每個數據項都是某種類型的實例。
4.4 數據成員和函數成員
- 數據成員:保存了類對象或整個類的相關數據。
- 函數成員:執行代碼,定義類型的行為。
4.5 預定義類型
C# 中,數值類型不具有布爾意義。
所有預定義類型都直接映射到底層的 .NET 類型,C# 的類型名稱就是 .NET 類型的別名。
應盡量使用 C# 類型名稱而不是 .NET 類型名稱。
4.6 用戶定義類型
C# 中可創建的 6 中用戶類型:
- 類(class)
- 結構(struct)
- 數組(array)
- 枚舉(enum)
- 委托(delegate)
- 接口(interface)
4.7 棧和堆
棧是一個內存數組,是一個后進先出的數據結構,存儲的數據包括:某些類型變量的值、程序當前的執行環境、傳遞給方法的參數
堆是一塊內存區域,用于存儲某種類型的數據對象,可以任意順序存入和移除。
4.8 值類型和引用類型
-
值類型:需要一段單獨的內存
- 用于存儲實際數據
-
引用類型:需要兩段內存
- 第一段 存儲實際數據,位于堆中
- 第二段 是一個引用,指向堆中的存放位置
4.9 變量
4.9.1 變量聲明
1.變量初始化語句
由一個等號 + 一個初始數值組成
int var2 = 17;
2.自動初始化
4.9.2 多變量聲明
4.9.3 使用變量的值
4.10 靜態類型和 dynamic 關鍵字
- 靜態類型:變量的類型在編譯的時候確定并且不可更改
- dynamic:動態類型,不會被編譯器做類型檢查