變數代表儲存位置,必須有確定資料型別。C# 型別安全意義之一即確保變數儲存位置容納適當型別。C# 變數可分七類:靜態變數、實例變數、傳值參數、參考參數、輸出參數、陣列參數、區域變數。區域變數為方法主體內的暫時變數。
靜態與實例變數針對類別或結構內資料成員(欄位)。靜態變數在類型載入後取得儲存空間,未初始化則為型別預設值。實例變數在類別實例建立後取得空間,初始化規則相同。詳細說明見第六講。
方法參數類型:
區域變數嚴格限制在區塊陳述式、for、switch、using 陳述式內宣告,生命週期侷限於陳述式區塊內部。
常數在編譯時確定值,全程不可修改。宣告時必須指派值。因編譯時確定值特性,參考型別可能值僅限 string 與 null。
C# 保留 C++ 所有運算子,指標運算子(*、->)與參考運算子(&)需在 unsafe 脈絡。捨棄範圍解析運算子(::),統一改為單點運算子(.)。重點介紹 C# 引入的特殊運算子:as、is、new、typeof、sizeof、stackalloc。
null。null 且可轉換回傳 true。expression as type 相當於 expression is type ? (type)expression : (type)null。System.Type 物件。unsafe 脈絡。unsafe。部分運算子可重載,讓自訂型別以簡單運算子表達常用操作。運算式分賦值運算式與布林運算式,未引入新形式。
C# 採用 namespace 組織程式,可巢狀。using 指示詞簡化型別引用:using System; 可用 Console 替代 System.Console;using Output = System.Console; 可用別名 Output。
C# 陳述式類型:標籤、宣告、區塊、空、運算式、選擇(if/switch)、迴圈(while/do/for/foreach)、跳躍(break/continue/goto/return/throw)、try、checked/unchecked、lock、using。foreach 需特定介面支援,後續詳細闡述。checked/unchecked 用於數值運算溢位檢查;lock 用於執行緒訊號量鎖控制;using 用於片段資源管理。