圖書標籤: C #.Net 編程 程序設計 .NET 近期待讀技術書 軟件開發 計算機
发表于2024-11-22
C# Programming Language pdf epub mobi txt 電子書 下載 2024
"Based on my own experience, I can safely say that every .NET developer who reads this will have at least one 'aha' moment and will be a better developer for it." --From the Foreword by Don Box The popular C# programming language combines the high productivity of rapid application development languages with the raw power of C and C++. Updated to cover the new features of C# 4.0, including dynamic binding, named and optional parameters, and covariant and contravariant generic types, this release takes the language to the next level by adding the ability to cleanly write programs that don't rely on static type definitions. This allows dynamic programming languages such as Python, Ruby, and JavaScript to feel native to C#. The C# Programming Language, Fourth Edition, continues to be the authoritative and annotated technical reference for C# 4.0. Written by Anders Hejlsberg, the language's architect, and his colleagues, Mads Torgersen, Scott Wiltamuth, and Peter Golde, this volume has been completely updated for C# 4.0. The book provides the complete specification of the language, along with descriptions, reference materials, code samples, and annotations from twelve prominent C# gurus. The many annotations bring a depth and breadth of understanding rarely found in any programming book. As the main text of the book introduces the concepts of the C# language, cogent annotations explain why they are important, how they are used, how they relate to other languages, and even how they evolved. This book is the definitive, must-have reference for any developer who wants to understand C#. With annotations from: Brad Abrams, Joseph Albahari, Krzysztof Cwalina, Jesse Liberty, Eric Lippert, Christian Nagel, Vladimir Reshetnikov, Marek Safar, Chris Sells, Peter Sestoft, Jon Skeet, and Bill Wagner.
譯者序
序言
前言
作者簡介
第1章 介紹 1
1.1 Hello,World 2
1.2 程序結構 3
1.3 類型和變量 5
1.4 錶達式 9
1.5 語句 10
1.6 類和對象 14
1.6.1 成員 15
1.6.2 訪問控製 16
1.6.3 類型參數 16
1.6.4 基類 17
1.6.5 字段 18
1.6.6 方法 19
1.6.7 其他函數成員 28
1.7 結構 35
1.8 數組 37
1.9 接口 39
1.10 枚舉 40
1.11 委托 42
1.12 特性 43
第2章 詞法結構 45
2.1 程序 45
2.2 文法 45
2.2.1 文法錶示法 45
2.2.2 詞法文法 46
2.2.3 語法文法 46
2.3 詞法分析 46
2.3.1 行終結符 47
2.3.2 注釋 47
2.3.3 空白符 48
2.4 標記 49
2.4.1 Unicode字符轉義序列 49
2.4.2 標識符 50
2.4.3 關鍵字 51
2.4.4 字麵量 52
2.4.5 操作符和標點符號 57
2.5 預處理指令 58
2.5.1 條件編譯符號 59
2.5.2 預處理錶達式 59
2.5.3 聲明指令 60
2.5.4 條件編譯指令 61
2.5.5 診斷指令 63
2.5.6 區域指令 64
2.5.7 行指令 64
2.5.8 編譯指示指令 65
第3章 基本概念 67
3.1 應用程序起始 67
3.2 應用程序終止 68
3.3 聲明 68
3.4 成員 70
3.4.1 命名空間成員 71
3.4.2 結構成員 71
3.4.3 枚舉成員 71
3.4.4 類成員 71
3.4.5 接口成員 72
3.4.6 數組成員 72
3.4.7 委托成員 72
3.5 成員訪問 72
3.5.1 聲明可訪問性 72
3.5.2 可訪問域 74
3.5.3 實例成員的保護訪問 76
3.5.4 訪問限製 78
3.6 簽名和重載 79
3.7 作用域 80
3.7.1 名字隱藏 83
3.8 命名空間和類型名 85
3.8.1 完全限定名 87
3.9 自動化內存管理 88
3.10 執行順序 92
第4章 類型 93
4.1 值類型 93
4.1.1 System.ValueType類型 94
4.1.2 默認構造函數 94
4.1.3 構造類型 95
4.1.4 簡單類型 95
4.1.5 整數類型 96
4.1.6 浮點數類型 98
4.1.7 decimal類型 99
4.1.8 bool類型 100
4.1.9 枚舉類型 101
4.1.10 可空值類型 101
4.2 引用類型 101
4.2.1 類類型 102
4.2.2 object類型 102
4.2.3 dynamic類型 103
4.2.4 string類型 103
4.2.5 接口類型 103
4.2.6 數組類型 103
4.2.7 委托類型 103
4.3 裝箱和拆箱 103
4.3.1 裝箱轉換 104
4.3.2 拆箱轉換 105
4.4 構造類型 107
4.4.1 類型實參 107
4.4.2 開放式和封閉式類型 108
4.4.3 綁定和未綁定類型 108
4.4.4 滿足限製 108
4.5 類型參數 109
4.6 錶達式樹類型 110
4.7 dynamic類型 110
第5章 變量 112
5.1 變量類彆 112
5.1.1 靜態變量 113
5.1.2 實例變量 113
5.1.3 數組元素 113
5.1.4 值參數 113
5.1.5 引用參數 114
5.1.6 輸齣參數 114
5.1.7 局部變量 115
5.2 默認值 116
5.3 明確賦值 116
5.3.1 初始賦值的變量 117
5.3.2 未賦初值的變量 117
5.3.3 確定明確賦值的精確規則 117
5.4 變量引用 126
5.5 變量引用的原子性 127
第6章 轉換 128
6.1 隱式轉換 128
6.1.1 標識轉換 129
6.1.2 隱式數字轉換 129
6.1.3 隱式枚舉轉換 129
6.1.4 隱式可空值轉換 130
6.1.5 null字麵量轉換 130
6.1.6 隱式引用轉換 130
6.1.7 裝箱轉換 132
6.1.8 隱式動態轉換 132
6.1.9 隱式常量錶達式轉換 133
6.1.10 帶類型參數的隱式轉換 133
6.1.11 自定義隱式轉換 134
6.1.12 匿名函數轉換和方法組轉換 134
6.2 顯式轉換 134
6.2.1 顯式數字轉換 134
6.2.2 顯式枚舉轉換 136
6.2.3 顯式可空值轉換 136
6.2.4 顯式引用轉換 136
6.2.5 拆箱轉換 138
6.2.6 顯式動態轉換 138
6.2.7 帶類型參數的顯式轉換 138
6.2.8 自定義顯式轉換 140
6.3 標準轉換 140
6.3.1 標準隱式轉換 140
6.3.2 標準顯式轉換 140
6.4 自定義轉換 140
6.4.1 允許的自定義轉換 141
6.4.2 提升轉換操作符 141
6.4.3 自定義轉換的計算 141
6.4.4 自定義隱式轉換 142
6.4.5 自定義顯式轉換 143
6.5 匿名函數轉換 144
6.5.1 匿名函數到委托類型轉換的計算 145
6.5.2 匿名函數到錶達式樹類型轉換的計算 146
6.5.3 實現舉例 146
6.6 方法組轉換 149
第7章 錶達式 152
7.1 錶達式分類 152
7.1.1 錶達式的值 153
7.2 靜態和動態綁定 153
7.2.1 綁定期 154
7.2.2 動態綁定 155
7.2.3 組成錶達式的類型 155
7.3 操作符 156
7.3.1 操作符優先級和結閤性 156
7.3.2 操作符重載 157
7.3.3 一元操作符重載決策 159
7.3.4 二元操作符重載決策 159
7.3.5 候選自定義操作符 159
7.3.6 數字提升 160
7.3.7 提升操作符 161
7.4 成員查找 162
7.4.1 基礎類型 163
7.5 函數成員 164
7.5.1 參數列錶 165
7.5.2 類型推導 168
7.5.3 重載決策 175
7.5.4 動態重載決策的編譯期檢查 179
7.5.5 函數成員調用 179
7.6 基礎錶達式 180
7.6.1 字麵量 181
7.6.2 簡單名字 181
7.6.3 括號錶達式 183
7.6.4 成員訪問 183
7.6.5 調用錶達式 187
7.6.6 元素訪問 193
7.6.7 this訪問 195
7.6.8 base訪問 196
7.6.9 後綴遞增和遞減操作符 196
7.6.10 new操作符 197
7.6.11 typeof操作符 207
7.6.12 checked和unchecked操作符 209
7.6.13 默認值錶達式 211
7.6.14 匿名方法錶達式 212
7.7 一元操作符 212
7.7.1 一元加號操作符 212
7.7.2 一元減號操作符 213
7.7.3 邏輯否操作符 213
7.7.4 按位求補操作符 213
7.7.5 前綴遞增和遞減操作符 214
7.7.6 轉換錶達式 215
7.8 算術操作符 216
7.8.1 乘法操作符 216
7.8.2 除法操作符 217
7.8.3 求餘操作符 218
7.8.4 加法操作符 220
7.8.5 減法操作符 221
7.9 移位操作符 223
7.10 關係和類型測試操作符 224
7.10.1 整數比較操作符 225
7.10.2 浮點數比較操作符 226
7.10.3 小數比較操作符 227
7.10.4 布爾值相等操作符 227
7.10.5 枚舉比較操作符 227
7.10.6 引用類型相等操作符 227
7.10.7 字符串相等操作符 229
7.10.8 委托相等操作符 229
7.10.9 相等操作符和null 230
7.10.10 is操作符 230
7.10.11 as操作符 230
7.11 邏輯操作符 232
7.11.1 整數邏輯操作符 233
7.11.2 枚舉邏輯操作符 233
7.11.3 布爾邏輯操作符 233
7.11.4 可空值布爾邏輯操作符 233
7.12 條件邏輯操作符 234
7.12.1 布爾條件邏輯操作符 234
7.12.2 用戶自定義條件邏輯操作符 235
7.13 Null拼接操作符 235
7.14 條件操作符 236
7.15 匿名函數錶達式 238
7.15.1 匿名函數簽名 239
7.15.2 匿名函數主體 240
7.15.3 重載決策 240
7.15.4 匿名函數和動態綁定 241
7.15.5 外部變量 241
7.15.6 匿名函數錶達式的計算 244
7.16 查詢錶達式 245
7.16.1 查詢錶達式裏的歧義 246
7.16.2 查詢錶達式翻譯 247
7.16.3 查詢錶達式模式 254
7.17 賦值操作符 256
7.17.1 簡單賦值 256
7.17.2 組閤賦值 259
7.17.3 事件賦值 260
7.18 錶達式 260
7.19 常量錶達式 260
7.20 布爾錶達式 261
第8章 語句 263
8.1 終點和可及性 263
8.2 塊 265
8.2.1 語句列錶 265
8.3 空語句 266
8.4 標簽語句 267
8.5 聲明語句 268
8.5.1 局部變量聲明 268
8.5.2 局部常量聲明 271
8.6 錶達式語句 271
8.7 選擇語句 272
8.7.1 if語句 272
8.7.2 switch語句 273
8.8 迭代語句 276
8.8.1 while語句 277
8.8.2 do語句 277
8.8.3 for語句 278
8.8.4 foreach語句 279
8.9 跳轉語句 283
8.9.1 break語句 284
8.9.2 continue語句 284
8.9.3 goto語句 285
8.9.4 return語句 286
8.9.5 throw語句 287
8.10 try語句 288
8.11 checked和unchecked語句 291
8.12 lock語句 292
8.13 using語句 293
8.14 yield語句 296
第9章 命名空間 299
9.1 編譯單元 299
9.2 命名空間聲明 300
9.3 Extern彆名 301
9.4 using指令 301
9.4.1 using彆名指令 302
9.4.2 using命名空間指令 305
9.5 命名空間成員 306
9.6 類型聲明 307
9.7 命名空間彆名限定符 307
9.7.1 彆名的惟一性 308
第10章 類 310
10.1 類聲明 310
10.1.1 類修飾符 310
10.1.2 partial修飾符 312
10.1.3 類型形參 313
10.1.4 類基礎規範 313
10.1.5 類型形參限製 315
10.1.6 類主體 320
10.2 局部類型 320
10.2.1 特性 321
10.2.2 修飾符 321
10.2.3 類型形參和限製 321
10.2.4 基類 322
10.2.5 基礎接口 322
10.2.6 成員 322
10.2.7 局部方法 323
10.2.8 名字綁定 326
10.3 類成員 327
10.3.1 實例類型 328
10.3.2 構造類型的成員 328
10.3.3 繼承 330
10.3.4 new修飾符 331
10.3.5 訪問修飾符 331
10.3.6 組成類型 331
10.3.7 靜態成員和實例成員 331
10.3.8 嵌套類型 332
10.3.9 保留成員名 337
10.4 常量 338
10.5 字段 340
10.5.1 靜態字段和實例字段 341
10.5.2 隻讀字段 342
10.5.3 易失字段 344
10.5.4 字段初始化 345
10.5.5 變量初始化語句 346
10.6 方法 348
10.6.1 方法形參 350
10.6.2 靜態方法和實例方法 356
10.6.3 虛擬方法 356
10.6.4 重寫方法 359
10.6.5 密封方法 361
10.6.6 抽象方法 362
10.6.7 外部方法 363
10.6.8 局部方法 364
10.6.9 擴展方法 364
10.6.10 方法主體 365
10.6.11 方法重載 366
10.7 屬性 366
10.7.1 靜態屬性和實例屬性 367
10.7.2 訪問器 367
10.7.3 自動實現的屬性 372
10.7.4 可訪問性 373
10.7.5 虛擬、密封、重寫和抽象訪問器 375
10.8 事件 376
10.8.1 類似字段的事件 378
10.8.2 事件訪問器 380
10.8.3 靜態事件和實例事件 381
10.8.4 虛擬、密封、重寫和抽象訪問器 381
10.9 索引 381
10.9.1 索引重載 385
10.10 操作符 385
10.10.1 一元操作符 386
10.10.2 二元操作符 387
10.10.3 轉換操作符 388
10.11 實例構造函數 390
10.11.1 構造函數初始化語句 391
10.11.2 實例變量初始化語句 392
10.11.3 構造函數的執行 392
10.11.4 默認構造函數 394
10.11.5 私有構造函數 395
10.11.6 可選的實例構造函數參數 395
10.12 靜態構造函數 396
10.13 析構函數 398
10.14 迭代器 400
10.14.1 枚舉器接口 400
10.14.2 可枚舉接口 400
10.14.3 yield類型 400
10.14.4 計數對象 400
10.14.5 枚舉對象 402
10.14.6 實現舉例 403
第11章 結構 410
11.1 結構聲明 410
11.1.1 結構修飾符 411
11.1.2 partial修飾符 411
11.1.3 結構接口 411
11.1.4 結構主體 411
11.2 結構成員 411
11.3 類和結構的區彆 412
11.3.1 值語義 412
11.3.2 繼承 413
11.3.3 賦值 413
11.3.4 默認值 414
11.3.5 裝箱和拆箱 414
11.3.6 this的含義 416
11.3.7 字段初始化語句 417
11.3.8 構造函數 417
11.3.9 析構函數 418
11.3.10 靜態構造函數 418
11.4 結構舉例 419
11.4.1 數據庫整數類型 419
11.4.2 數據庫布爾類型 421
第12章 數組 424
12.1 數組類型 424
12.1.1 System.Array類型 425
12.1.2 數組和泛型IList接口 425
12.2 數組創建 426
12.3 數組元素訪問 426
12.4 數組成員 426
12.5 數組協變 426
12.6 數組初始化語句 427
第13章 接口 430
13.1 接口聲明 430
13.1.1 接口修飾符 430
13.1.2 partial修飾符 431
13.1.3 可變類型形參列錶 431
13.1.4 基礎接口 432
13.1.5 接口主體 434
13.2 接口成員 434
13.2.1 接口方法 435
13.2.2 接口屬性 435
13.2.3 接口事件 436
13.2.4 接口索引 436
13.2.5 接口成員訪問 436
13.3 完全限定接口成員名 438
13.4 接口實現 439
13.4.1 顯式接口成員實現 440
13.4.2 實現接口的惟一性 442
13.4.3 泛型方法的實現 443
13.4.4 接口映射 444
13.4.5 接口實現繼承 447
13.4.6 重新實現接口 448
13.4.7 抽象類和接口 450
第14章 枚舉 451
14.1 枚舉聲明 451
14.2 枚舉修飾符 452
14.3 枚舉成員 452
14.4 System.Enum類型 454
14.5 枚舉值和操作 454
第15章 委托 456
15.1 委托聲明 456
15.2 委托兼容性 459
15.3 委托實例化 459
15.4 委托調用 460
第16章 異常 463
16.1 異常産生的原因 464
16.2 System.Exception類 464
16.3 異常是如何處理的 464
16.4 常見的異常類 465
第17章 特性 467
17.1 特性類 467
17.1.1 特性的用法 467
17.1.2 位置和命名參數 469
17.1.3 特性參數類型 470
17.2 特性規範 470
17.3 特性實例 475
17.3.1 特性的編譯 475
17.3.2 在運行時獲取一個特性實例 475
17.4 保留特性 476
17.4.1 AttributeUsage特性 476
17.4.2 Conditional特性 477
17.4.3 Obsolete特性 480
17.5 用於互操作的特性 481
17.5.1 與COM以及Win32組件互操作 481
17.5.2 與其他.NET語言互操作 482
第18章 不安全的代碼 483
18.1 不安全的上下文 483
18.2 指針類型 485
18.3 固定變量和可移動變量 488
18.4 指針轉換 488
18.4.1 指針數組 490
18.5 錶達式裏的指針 490
18.5.1 指針間接尋址 491
18.5.2 指針成員訪問 491
18.5.3 指針元素訪問 492
18.5.4 取地址操作符 493
18.5.5 指針遞增和遞減 494
18.5.6 指針算術 494
18.5.7 指針比較 495
18.5.8 sizeof操作符 495
18.6 fixed語句 496
18.7 定長緩衝區 500
18.7.1 定長緩衝區聲明 500
18.7.2 錶達式裏的定長緩衝區 501
18.7.3 明確賦值檢查 502
18.8 棧分配 502
18.9 動態內存分配 503
附錄A 文檔注釋 506
附錄B 文法 526
附錄C 參考 560
重新梳理一下,多人注釋這種形式很棒
評分不值得花太多時間看新語法
評分重新梳理一下,多人注釋這種形式很棒
評分不值得花太多時間看新語法
評分重新梳理一下,多人注釋這種形式很棒
试读过几章,我还有一些C语言基础,也学过c#。但是,读起来很不顺。 许多语法格式。感觉,像是枯燥的 语法规范。而不是讲解语言。估计想深入研究c# 编译机理的更有用。 这还短? 这还短? 这还短? 这还短? 这还短? 这还短? 这还短? 这还短? 这还短? ...
評分试读过几章,我还有一些C语言基础,也学过c#。但是,读起来很不顺。 许多语法格式。感觉,像是枯燥的 语法规范。而不是讲解语言。估计想深入研究c# 编译机理的更有用。 这还短? 这还短? 这还短? 这还短? 这还短? 这还短? 这还短? 这还短? 这还短? ...
評分C#语言结合了快速应用开发语言的高效和C/C++语言的强大。现在C# 4.0又加入了动态绑定、命名和可选参数以及协变和逆变泛型等新特性,这些特性把C#语言提升到了一个新的层次上,使程序的编写更简洁,不再依赖于静态类 型定义。这使得C#与动态编程语言(例如Python、Rudy和JavaS...
評分试读过几章,我还有一些C语言基础,也学过c#。但是,读起来很不顺。 许多语法格式。感觉,像是枯燥的 语法规范。而不是讲解语言。估计想深入研究c# 编译机理的更有用。 这还短? 这还短? 这还短? 这还短? 这还短? 这还短? 这还短? 这还短? 这还短? ...
評分买了书的前辈,都怎么看的呀?我实在看得头痛呀!刚才有个同学说他在猎豹网校上学的,象看电影一样,可容易了。有空要去看一下了。否则我会累倒在这里了。
C# Programming Language pdf epub mobi txt 電子書 下載 2024