C 語言規範

2021-05-07 09:25:00 字數 4253 閱讀 9754

c# 語言規範的 1.2 和 2.0 版是關於 c# 語法的權威資料。

它們包含該語言各個方面的詳細資訊,包括 visual c# 產品文件未涉及的許多語法點。

1.2 規範討論了在 visual c# 2005 推出之前為該語言新增的功能,

而 2.0 規範則討論了針對 visual c# 2005 新增的功能。

可以從以下位置獲得 microsoft word 格式的 c# 語言規範:

在 msdn online 上的位置是:

在 visual studio 中的位置是:

microsoft visual studio 2005 安裝目錄下的 vc#/specifications/2052/ 目錄中。

有興趣的話 可以閱讀一下這個權威的參考資料

其中c#2.0版的目錄如下:

----------------------

19. c# 2.0 簡介 1

19.1 泛型 1

19.1.1 為什麼要使用泛型? 1

19.1.2 建立和使用泛型 2

19.1.3 泛型型別例項化 3

19.1.4 約束 4

19.1.5 泛型方法 5

19.2 匿名方法 6

19.2.1 方法組轉換 8

19.3 迭代器 8

19.4 分部型別 11

19.5 可空型別 12

20. 泛型 15

20.1 泛型類宣告 15

20.1.1 型別形參 15

20.1.2 例項型別 16

20.1.3 基規範 17

20.1.4 泛型類的成員 17

20.1.5 泛型類中的靜態字段 18

20.1.6 泛型類中的靜態建構函式 18

20.1.7 訪問受保護成員 19

20.1.8 泛型類中的過載 19

20.1.9 形引數組方法和型別形參 20

20.1.10 重寫和泛型類 20

20.1.11 泛型類中的運算子 21

20.1.12 泛型類中的巢狀型別 22

20.1.13 應用程式入口點 23

20.2 泛型結構宣告 23

20.3 泛型介面宣告 23

20.3.1 所實現介面的唯一性 23

20.3.2 顯式介面成員實現 24

20.4 泛型委託宣告 25

20.5 構造型別 25

20.5.1 型別實參 26

20.5.2 開放和封閉型別 26

20.5.3 構造型別的基類和介面 27

20.5.4 構造型別的成員 27

20.5.5 構造型別的可訪問性 28

20.5.6 轉換 28

20.5.7 using 別名指令 29

20.5.8 屬性 29

20.5.9 陣列和泛型 ilist 介面 29

20.6 泛型方法 30

20.6.1 泛型方法簽名 31

20.6.2 虛泛型方法 31

20.6.3 呼叫泛型方法 33

20.6.4 型別實參推斷 33

20.6.5 語法多義性 35

20.6.6 通過委託使用泛型方法 35

20.6.7 不能是泛型的成員 36

20.7 約束 36

20.7.1 滿足約束 40

20.7.2 型別形參上的成員查詢 41

20.7.3 型別形參和裝箱 41

20.7.4 涉及型別形參的轉換 42

20.8 表示式和語句 44

20.8.1 物件建立表示式 44

20.8.2 typeof 運算子 44

20.8.3 引用相等運算子 45

20.8.4 is 運算子 46

20.8.5 as 運算子 46

20.8.6 異常語句 46

20.8.7 lock 語句 46

20.8.8 using 語句 46

20.8.9 foreach 語句 46

20.9 查詢規則的修改 47

20.9.1 命名空間和型別名稱 47

20.9.2 成員查詢 49

20.9.3 適用函式成員 50

20.9.4 更好的函式成員 50

20.9.5 簡單名稱 51

20.9.6 成員訪問 52

20.9.7 方法呼叫 54

20.10 右移語法變化 55

21. 匿名方法 57

21.1 匿名方法表示式 57

21.2 匿名方法簽名 57

21.3 匿名方法轉換 57

21.4 匿名方法塊 59

21.5 外層變數 59

21.5.1 捕獲的外層變數 59

21.5.2 區域性變數例項化 60

21.6 匿名方法計算 62

21.7 委託例項相等性 63

21.8 明確賦值 63

21.9 方法組轉換 64

21.10 委託建立表示式 65

21.11 實現示例 65

22. 迭代器 69

22.1 迭代器塊 69

22.1.1 列舉器介面 69

22.1.2 可列舉介面 69

22.1.3 產生型別 69

22.1.4 this 訪問 70

22.2 列舉器物件 70

22.2.1 movenext 方法 70

22.2.2 current 屬性 71

22.2.3 dispose 方法 71

22.3 可列舉物件 72

22.3.1 getenumerator 方法 72

22.4 yield 語句 72

22.4.1 明確賦值 74

22.5 實現示例 74

23. 分部型別 81

23.1 分部宣告 81

23.1.1 屬性 81

23.1.2 修飾符 82

23.1.3 型別引數和約束 82

23.1.4 基類 82

23.1.5 基介面 83

23.1.6 成員 83

23.2 名稱繫結 84

24. 可空型別 85

24.1 可空型別 85

24.1.1 成員 85

24.1.2 預設值 86

24.1.3 值型別約束 86

24.2 轉換 86

24.2.1 null 文字轉換 86

24.2.2 可空轉換 86

24.2.3 裝箱和取消裝箱轉換 87

24.2.4 允許的使用者定義轉換 87

24.2.5 使用者定義轉換的計算 88

24.2.6 提公升的轉換 88

24.2.7 使用者定義的隱式轉換 88

24.2.8 使用者定義的顯式轉換 89

24.3 表示式 90

24.3.1 提公升運算子 90

24.3.2 允許的使用者定義運算子 91

24.3.3 運算子過載解析 91

24.3.4 相等操作符和空 91

24.3.5 is 運算子 91

24.3.6 as 運算子 92

24.3.7 復合賦值 92

24.3.8 bool? 型別 92

24.3.9 空合併運算子 93

25. 其他功能 95

25.1 屬性訪問器的可訪問性 95

25.1.1 訪問器宣告 95

25.1.2 訪問器的使用 96

25.1.3 重寫和介面實現 97

25.2 靜態類 97

25.2.1 靜態類宣告 97

25.2.2 引用靜態類型別 98

25.3 命名空間別名限定符 98

25.3.1 限定的別名成員 100

25.3.2 別名的唯一性 101

25.4 extern 別名 102

25.4.1 extern 別名指令 103

25.5 pragma 指令 104

25.5.1 pragma warning 105

25.6 預設值表示式 105

25.7 條件屬性類 106

25.8 固定大小緩衝區 107

25.8.1 固定大小緩衝區的宣告 107

25.8.2 表示式中的固定大小緩衝區 108

25.8.3 fixed 語句 109

25.8.4 明確賦值檢查 109

C 語言規範

類與結構有很多相似之處 結構可以實現介面,並且可以具有與類相同的成員型別。然而,結構在幾個重要方面不同於類 結構為值型別而不是引用型別,並且結構不支援繼承。結構的值儲存在 在堆疊上 或 內聯 細心的程式設計師有時可以通過聰明地使用結構來增強效能。例如,將 point 定義為結構而不是類在執行時可以節...

C語言規範

1.對該原始檔用到的所有自定義的函式 除了主函式 在程式開頭進行宣告 該宣告僅是為方便閱讀者對檔案內的函式進行全了,當然也可減少沒做到第2點而出現的尷尬 2.被呼叫的函式放在主調函式前面,可以避免重複宣告 雖然在程式開頭進行宣告過 int getmax divisor int m,int n 放在主...

C語言程式設計規範

1 標頭檔案中適合放置介面宣告,不適合放實現 2 標頭檔案職責單一 3 標頭檔案應向穩定的方向包含 1 只能通過包含標頭檔案的方式使用其他模組提供的介面,禁止在.c中通過extern的方式使用外部函式介面 變數 2 禁止在標頭檔案中定義變數 3 禁止在extern c 中包含標頭檔案 4 總是編寫內...