- 前言
- 簡介
- •1 範圍
- •2 規範參考
- •3 條款與定義
- •4 一般描述
- •5 一致性
- •6 語匯結構
- •7 基本概念
-
•8 種類型
- •8.1 一般
-
•8.2 參考類型
- •8.2.1 一般
- •8.2.2 類別類型
- §8.2.3 物件類型
- §8.2.4 動態類型
- §8.2.5 字串類型
- •8.2.6 介面類型
- •8.2.7 數位型態
- §8.2.8 委派類型
- •8.3 實值型別
- •8.4 建構類型
- •8.5 類型參數
- •8.6 運算式樹狀結構類型
- •8.7 動態類型
- •8.8 非受控類型
- •8.9 參考型別和 Null 性
-
•9 變數
- •9.1 一般
- •9.2 變數類別
- •9.3 預設值
-
•9.4 明確指派
- •9.4.1 一般
- •9.4.2 初始指派的變數
- •9.4.3 最初未指派的變數
-
•9.4.4 判斷明確指派的精確規則
- •9.4.4.1 一般
- •9.4.4.2 語句的一般規則
- •9.4.4.3 區塊語句、已檢查和未核取的語句
- •9.4.4.4 運算式語句
- •9.4.4.5 宣告語句
- •9.4.4.6 If 語句
- •9.4.4.7 Switch 語句
- •9.4.4.8 While 語句
- •9.4.4.9 Do 語句
- •9.4.4.10 For 語句
- •9.4.4.11 中斷、繼續和goto語句
- •9.4.4.12 Throw 語句
- •9.4.4.13 Return 語句
- •9.4.4.14 Try-catch 語句
- •9.4.4.15 Try-finally 語句
- •9.4.4.16 Try-catch-finally 語句
- •9.4.4.17 Foreach 語句
- •9.4.4.18 Using 語句
- •9.4.4.19 Lock 語句
- •9.4.4.20 Yield 語句
- •9.4.4.21 常數表達式的一般規則
- •9.4.4.22 簡單表達式的一般規則
- •9.4.4.23 內嵌表達式表達式的一般規則
- •9.4.4.24 調用表達式和物件建立表達式
- •9.4.4.25 簡單指派表達式
- •9.4.4.26 && 表達式
- •9.4.4.27 || 表達式
- •9.4.4.28 ! 運算式
- •9.4.4.29 ?? 運算式
- •9.4.4.30 ?: 表達式
- •9.4.4.31 匿名函式
- •9.4.4.32 擲回表達式
- •9.4.4.33 局部函式中變數的規則
- •9.4.4.34 is-pattern 運算式
- •9.5 變數參考
- •9.6 變數參考的不可部分完成性
- •9.7 參考變數並傳回
-
•10 轉換
- •10.1 一般
-
•10.2 隱含轉換
- •10.2.1 一般
- •10.2.2 身分識別轉換
- •10.2.3 隱含數值轉換
- •10.2.4 隱含列舉轉換
- •10.2.5 隱含插補字串轉換
- •10.2.6 隱含可為 Null 的轉換
- •10.2.7 Null 常值轉換
- •10.2.8 隱含參考轉換
- •10.2.9 Boxing 轉換
- •10.2.10 隱含動態轉換
- •10.2.11 隱含常數表達式轉換
- •10.2.12 涉及類型參數的隱含轉換
- •10.2.13 隱含 Tuple 轉換
- •10.2.14 用戶定義的隱含轉換
- •10.2.15 匿名函式轉換和方法群組轉換
- •10.2.16 預設常值轉換
- •10.2.17 隱含擲回轉換
- 第 10.2.18 條 切換運算式轉換
- •10.3 明確轉換
- •10.4 標準轉換
- •10.5 使用者定義的轉換
- •10.6 涉及可為 Null 類型的轉換
- •10.7 匿名函式轉換
- •10.8 方法群組轉換
-
•11 模式和模式比對
- •11.1 一般
-
•11.2 模式表單
- •11.2.1 一般
- •11.2.2 宣告模式
- •11.2.3 常數模式
- •11.2.4 Var 模式
- 第 11.2.5 條 位置模式
- 第 11.2.6 條 屬性模式
- 第 11.2.7 條 捨棄圖案
- •11.3 模式子建議
- •11.4 模式詳盡
-
•12 個表達式
- •12.1 一般
- •12.2 運算式分類
- •12.3 靜態和動態系結
- •12.4 運算符
- •12.5 成員查閱
-
•12.6 函式成員
- •12.6.1 一般
- •12.6.2 自變數清單
-
•12.6.3 類型推斷
- •12.6.3.1 一般
- •12.6.3.2 第一個階段
- •12.6.3.3 第二階段
- •12.6.3.4 輸入類型
- •12.6.3.5 輸出類型
- •12.6.3.6 相依性
- •12.6.3.7 輸入類型推斷
- •12.6.3.8 輸出類型推斷
- •12.6.3.9 明確參數類型推斷
- •12.6.3.10 確切推斷
- •12.6.3.11 下限推斷
- •12.6.3.12 上限推斷
- •12.6.3.13 定影
- •12.6.3.14 推斷的傳回類型
- •12.6.3.15 方法群組轉換的類型推斷
- •12.6.3.16 尋找一組表達式的最佳常見類型
- •12.6.4 多載解析度
- •12.6.5 動態成員調用的編譯時間檢查
- •12.6.6 函式成員調用
- •12.7 解構
-
•12.8 主要表達式
- •12.8.1 一般
- •12.8.2 常值
- •12.8.3 插補字串表達式
- •12.8.4 簡單名稱
- •12.8.5 括弧表達式
- •12.8.6 Tuple 運算式
- •12.8.7 成員存取
- •12.8.8 Null條件式成員存取
- •12.8.9 Null-forgiving 運算式
-
•12.8.10 調用表達式
- •12.8.10.1 一般
- •12.8.10.2 方法調用
- •12.8.10.3 擴充方法調用
- •12.8.10.4 委派調用
- •12.8.11 Null條件調用表達式
-
•12.8.12 元素存取
- •12.8.12.1 一般
- •12.8.12.2 陣組存取
- 第 12.8.12.3 條 字串存取
- 第 12.8.12.4 條 索引子存取
- •12.8.13 Null條件專案存取
- •12.8.14 此存取
- •12.8.15 基本存取
- •12.8.16 後置遞增和遞減運算符
-
•12.8.17 新運算符
- •12.8.17.1 一般
-
•12.8.17.2 物件建立表達式
- §12.8.17.2.1 常規
- •12.8.17.2.2 物件初始化器
- §12.8.17.2.3 集合初始化器
- •12.8.17.3 匿名物件建立表達式
- •12.8.17.4 陣列建立表達式
- §12.8.17.5 委派創建語法
- •12.8.18 typeof 運算符
- •12.8.19 sizeof 運算符
- •12.8.20 已核取和未核取的運算符
- •12.8.21 預設值表達式
- •12.8.22 堆棧配置
- •12.8.23 nameof 運算符
- •12.8.24 匿名方法表達式
-
•12.9 一元運算符
- •12.9.1 一般
- •12.9.2 一元加號運算符
- •12.9.3 一元減號運算符
- •12.9.4 邏輯否定運算符
- •12.9.5 位補碼運算符
- 第 12.9.6 條 索引從結尾運算子
- 第 12.9.7 條 前置詞遞增和遞減運算子
- 第 12.9.8 條 轉換運算式
-
第 12.9.9 條 等待運算式
- 第 12.9.9.1 條 一般
- 第 12.9.9.2 條 可等待的運算式
- 第 12.9.9.3 條 await 運算式的分類
- 第 12.9.9.4 條 await 運算式的執行階段評估
- 第 12.10 條 範圍運算子
- 第 12.11 條 切換運算式
-
第 12.12 條 算術運算子
- 第 12.12.1 條 一般
- 第 12.12.2 條 乘法運算子
- 第 12.12.3 條 部門運算子
- 第 12.12.4 條 餘數運算子
- 第 12.12.5 條 加法運算子
- 第 12.12.6 條 減法運算子
- 第 12.13 條 班次運算子
-
第 12.14 條 關聯式和類型測試運算子
- •12.14.1 一般
- 第 12.14.2 條 整數比較運算子
- 第 12.14.3 條 浮點比較運算子
- 第 12.14.4 條 十進位比較運算子
- 第 12.14.5 條 布林相等運算子
- 第 12.14.6 條 列舉比較運算子
- 第 12.14.7 條 參考類型相等運算子
- 第 12.14.8 條 字串相等運算子
- 第 12.14.9 條 委派相等運算子
- 第 12.14.10 條 可為 Null 值類型與 Null 常值之間的相等運算子
- 第 12.14.11 條 元組相等運算子
-
第 12.14.12 條 is 運算子
- 第 12.14.12.1 條 is-type 運算子
- 第 12.14.12.2 條 is-pattern 運算子
- 第 12.14.13 條 as 運算子
-
第 12.15 條 邏輯運算子
- 第 12.15.1 條 一般
- 第 12.15.2 條 整數邏輯運算子
- 第 12.15.3 條 列舉邏輯運算子
- 第 12.15.4 條 布林邏輯運算子
- 第 12.15.5 條 可為空的布林值 &; 和 |運營商
-
第 12.16 條 條件式邏輯運算子
- 第 12.16.1 條 一般
- 第 12.16.2 條 布林條件式邏輯運算子
- 第 12.16.3 條 使用者定義的條件式邏輯運算子
- 第 12.17 條 空值聯合運算子
- 第 12.18 條 throw 運算式運算子
- 第12.19條 宣告運算式
- 第 12.20 條 條件運算子
-
第 12.21 條 匿名函數運算式
- •12.21.1 一般
- 第 12.21.2 條 匿名函數簽章
- 第 12.21.3 條 匿名函數體
- 第 12.21.4 條 過載解決
- 第 12.21.5 條 匿名函數和動態綁定
-
第 12.21.6 條 外部變數
- 第 12.21.6.1 條 一般
- 第 12.21.6.2 條 擷取的外部變數
- 第 12.21.6.3 條 局部變數的實例化
- 第 12.21.7 條 匿名函數運算式的評估
- 第 12.21.8 條 實作範例
-
第 12.22 條 查詢運算式
- 第 12.22.1 條 一般
- 第 12.22.2 條 查詢運算式中的歧義
-
第 12.22.3 條 查詢運算式翻譯
- 第 12.22.3.1 條 一般
- 第 12.22.3.2 條 具有接續的查詢運算式
- 第 12.22.3.3 條 明確範圍變數類型
- 第 12.22.3.4 條 退化查詢運算式
- 第 12.22.3.5 條 from、let、where、join 和 orderby 子句
- 第 12.22.3.6 條 選取子句
- 第 12.22.3.7 條 群組子句
- 第 12.22.3.8 條 透明識別碼
- 第 12.22.4 條 查詢運算式模式
-
第12.23條 指派運算子
- 第 12.23.1 條 一般
- 第 12.23.2 條 簡單分配
- 第 12.23.3 條 參考指派
- 第 12.23.4 條 複合指派
- 第 12.23.5 條 活動指派
- 第 12.24 條 詞
- 第 12.25 條 常數運算式
- 第 12.26 條 布林運算式
- •13 語句
- •14 命名空間
-
•15 個類別
- •15.1 一般
- •15.2 類別宣告
-
•15.3 類別成員
- •15.3.1 一般
- •15.3.2 實例類型
- •15.3.3 建構型別的成員
- •15.3.4 繼承
- •15.3.5 新修飾詞
- •15.3.6 Access 修飾詞
- •15.3.7 組成類型
- •15.3.8 靜態和實例成員
- •15.3.9 巢狀類型
-
•15.3.10 保留成員名稱
- •15.3.10.1 一般
- •15.3.10.2 保留給屬性的成員名稱
- •15.3.10.3 保留 給事件的成員名稱
- •15.3.10.4 保留給索引器的成員名稱
- •15.3.10.5 保留給完成項的成員名稱
- •15.3.10.6 保留給運算符的方法名稱
- •15.4 常數
- •15.5 欄位
-
•15.6 方法
- •15.6.1 一般
-
•15.6.2 方法參數
- •15.6.2.1 一般
- •15.6.2.2 值參數
-
•15.6.2.3 參考參數
- •15.6.2.3.1 一般
- •15.6.2.3.2 輸入參數
- •15.6.2.3.3 參考參數
- •15.6.2.3.4 輸出參數
- •15.6.2.4 參數陣列
- •15.6.3 靜態和實例方法
- •15.6.4 虛擬方法
- •15.6.5 覆寫方法
- •15.6.6 Sealed 方法
- •15.6.7 抽象方法
- •15.6.8 外部方法
- •15.6.9 部分方法
- •15.6.10 擴充方法
- •15.6.11 方法主體
- •15.7 屬性
- •15.8 事件
- •15.9 索引器
- •15.10 運算符
- •15.11 實例建構函式
- •15.12 靜態建構函式
- •15.13 完成項
- •15.14 異步函式
-
•15.15 同步和異步反覆運算器
- •15.15.1 一般
- §15.15.2 列舉器介面
- •15.15.3 可列舉的介面
- §15.15.4 Yield 類型
-
•15.15.5 列舉器物件
- §15.15.5.1 常規
- •15.15.5.2 將枚舉器往前推進
- •15.15.5.3 擷取目前的值
- §15.15.5.4 處置資源
-
•15.15.6 可列舉的物件
- §15.15.6.1 常規
- §15.15.6.2 GetEnumerator 或 GetAsyncEnumerator 方法
-
•16 結構
- •16.1 一般
- •16.2 結構宣告
- •16.3 結構成員
-
•16.4 類別和結構差異
- •16.4.1 一般
- •16.4.2 值語意
- •16.4.3 繼承
- •16.4.4 工作分派
- •16.4.5 預設值
- •16.4.6 Boxing 和 unboxing
- •16.4.7 此意義
- •16.4.8 字段初始化表達式
- •16.4.9 建構函式
- •16.4.10 靜態建構函式
- §16.4.11 屬性
- •16.4.12 方法
- §16.4.13 索引器
- §16.4.14 事件
-
•16.4.15 安全內容條件約束
- §16.4.15.1 常規
- •16.4.15.2 參數安全內容
- •16.4.15.3 局部變數安全內容
- §16.4.15.4 欄位安全上下文
- •16.4.15.5 運算符
- •16.4.15.6 方法和屬性調用
- •16.4.15.7 stackalloc
- §16.4.15.8 建構子呼叫
- •17 陣列
-
§18 擴展索引和切片
- •18.1 一般
- 第 18.2 條 索引類型
- 第 18.3 條 範圍類型
-
第 18.4 條 型樣型隱含支援索引和範圍
- •18.4.1 一般
- 第 18.4.2 條 隱含索引支援
- 第 18.4.3 條 隱含範圍支援
-
§19 介面
- •19.1 一般
-
第 19.2 條 介面宣告
- 第 19.2.1 條 一般
- 第 19.2.2 條 介面修飾符
-
第 19.2.3 條 變體類型參數清單
- 第 19.2.3.1 條 一般
- 第 19.2.3.2 條 變異安全
- 第 19.2.3.3 條 變異數轉換
- 第 19.2.4 條 基本介面
- 第 19.3 條 介面本體
-
第 19.4 條 介面成員
- 第 19.4.1 條 一般
- 第 19.4.2 條 介面欄位
- 第 19.4.3 條 介面方式
- 第 19.4.4 條 介面屬性
- 第 19.4.5 條 介面事件
- 第 19.4.6 條 介面索引子
- 第 19.4.7 條 介面運算子
- 第 19.4.8 條 介面靜態建構函式
- 第 19.4.9 條 介面巢狀類型
- §19.4.10 最具體的實現
- 第 19.4.11 條 介面成員存取
- 第 19.5 條 限定介面成員名稱
-
第 19.6 條 介面實作
- 第 19.6.1 條 一般
- 第 19.6.2 條 明確介面成員實作
- 第 19.6.3 條 實作介面的唯一性
- 第 19.6.4 條 通用方法的實現
- 第 19.6.5 條 介面對應
- 第 19.6.6 條 介面實作繼承
- 第 19.6.7 條 介面重新實作
- 第 19.6.8 條 抽象類別和介面
- §20 枚舉
- §21 代表
- §22 例外狀況
-
§23 屬性
- •23.1 一般
-
第 23.2 條 屬性類別
- 第 23.2.1 條 一般
- 第 23.2.2 條 屬性使用方式
- §23.2.3 位置和具名參數
- 第 23.2.4 條 屬性參數類型
- 第 23.3 條 屬性規格
-
第 23.4 條 屬性實例
- 第 23.4.1 條 一般
- 第 23.4.2 條 屬性的編譯
- 第 23.4.3 條 屬性實例的執行階段擷取
-
第 23.5 條 保留屬性
- •23.5.1 一般
- 第 23.5.2 條 AttributeUsage 屬性
-
第 23.5.3 條 條件屬性
- 第 23.5.3.1 條 一般
- §23.5.3.2 條件式方法
- 第 23.5.3.3 條 條件式屬性類別
- 第 23.5.4 條 Obsolete 屬性
- 第 23.5.5 條 AsyncMethodBuilder 屬性
-
第 23.5.6 條 來電者資訊屬性
- 第 23.5.6.1 條 一般
- 第 23.5.6.2 條 CallerLineNumber 屬性
- 第 23.5.6.3 條 CallerFilePath 屬性
- 第 23.5.6.4 條 CallerMemberName 屬性
-
第 23.5.7 條 程式碼分析屬性
- 第 23.5.7.1 條 一般
- 第 23.5.7.2 條 AllowNull 屬性
- §23.5.7.3 DisallowNull 屬性
- 第 23.5.7.4 條 DoesNotReturn 屬性
- 第 23.5.7.5 條 DoesNotReturnIf 屬性
- 第 23.5.7.6 條 MaybeNull 屬性
- 第 23.5.7.7 條 MaybeNullWhen 屬性
- 第 23.5.7.8 條 NotNull 屬性
- 第 23.5.7.9 條 NotNullIfNotNull 屬性
- 第 23.5.7.10 條 NotNullWhen 屬性
- 第 23.5.8 條 EnumeratorCancellation 屬性
- 第 23.6 條 互操作的屬性
-
§24 不安全的程式碼
- 第 24.1 條 一般
- 第 24.2 條 不安全的內容
- 第 24.3 條 指標類型
- 第 24.4 條 固定和可移動變數
-
第 24.5 條 指標轉換
- 第 24.5.1 條 一般
- 第 24.5.2 條 指標陣列
-
第 24.6 條 運算式中的指標
- 第 24.6.1 條 一般
- 第 24.6.2 條 指標間接
- 第 24.6.3 條 指標成員存取權
- 第 24.6.4 條 指標元素存取
- 第 24.6.5 條 位址運算子
- 第 24.6.6 條 指標遞增和遞減
- 第 24.6.7 條 指標算術
- 第 24.6.8 條 指標比較
- 第 24.6.9 條 sizeof 運算子
- 第 24.7 條 固定陳述式
-
第 24.8 條 固定大小緩衝區
- 第 24.8.1 條 一般
- 第 24.8.2 條 固定大小的緩衝區宣告
- 第 24.8.3 條 運算式中的固定大小緩衝區
- 第 24.8.4 條 明確的分配檢查
- 第 24.9 條 堆疊配置
-
•A 文法
- •A.1 一般
- •A.2 語匯文法
- •A.3 語法文法
- 適用於不安全程式代碼的 A.4 文法延伸模組
- •B 可移植性問題
-
•C 標準連結庫
- •C.1 一般
- •C.2 ISO/IEC 23271 中定義的標準連結庫類型
- •未在 ISO/IEC 23271 中定義的 C.3 標準連結庫類型
- •C.4 格式規格
- •C.5 連結庫類型縮寫
- •D 檔批注
- •E 書目