內容簡介
《C#入門經典(第4版)》通過C#可以很容易地學習.NET Framework 3.5的強大功能,所以C#是開始您編程生涯的絕佳方式。《C#入門經典(第4版)》全面闡述了C#編程的所有方面,包括C#語言本身、Windows編程、Web編程及數據源的使用等內容。
學習了新的編程技巧後,《C#入門經典(第4版)》介紹了如何高效地部署應用程式和服務,論述了許多高級技術,如圖形化編程。另外,還探討了如何使用Visual C# Express 2008、Visual Web Developer Express 2008和Visual Studio 2008的功能。所有這些內容都已更新,以反映.NET Framework 3.5和Visual Studio 2008的變化。各章的樣例代碼和示例還可以用於創建強大且安全的應用程式。
《C#入門經典(第4版)》語言簡練,條理清晰,涵蓋了
Visual C#2008和.NET Framework 3.5的全部內容。通過學習《C#入門經典(第4版)》,您將能夠快速入門,輕鬆開發出自己的應用程式。
《C#入門經典(第4版)》主要內容
C#的所有基礎知識和面向對象編程
通過C#語言編寫和部署Windows應用程式
開發定製的Web應用程式和利用Web服務的技巧
數據訪問技術,包括使用LINQ處理XML數據
通過單擊按鈕將應用程式發布到Web上
使用Windows Presentation Foundation、Windows Workflow Foundation、Windows Communication Foundation、GDI+和聯網等其他技術
作品目錄
第Ⅰ部分 C# 語 言
第1章 C#簡介 3
1.1 什麼是.NET Framework 3
1.1.1 NET Framework的內容 4
1.1.2 用.NET Framework編寫應用程式 4
1.2 什麼是C# 7
1.2.1 用C#能編寫什麼樣的應用程式 7
1.2.2 本書中的C# 8
1.3 Visual Studio 2008 8
1.3.1 Visual Studio 2008 Express 產品 9
1.3.2 解決方案 9
1.4 小結 9
第2章 編寫C#程式 10
2.1 開發環境 10
2.1.1 Visual Studio 2008 11
2.1.2 Visual C# 2008 ExpressEdition 13
2.2 控制台應用程式 13
2.2.1 Solution Explorer 16
2.2.2 Properties視窗 17
2.2.3 Error List視窗 17
2.3 Windows Forms應用程式 18
2.4 小結 22
第3章 變數和表達式 23
3.1 C#的基本語法 23
3.2 C#控制台應用程式的基本結構 25
3.3 變數 27
3.3.1 簡單類型 27
3.3.2 變數的命名 31
3.3.3 字面值 32
3.3.4 變數的聲明和賦值 33
3.4 表達式 34
3.4.1 數學運算符 34
3.4.2 賦值運算符 38
3.4.3 運算符的優先權 39
3.4.4 名稱空間 39
3.5 小結 42
3.6 練習 43
第4章 流程控制 44
4.1 布爾邏輯 44
4.1.1 位運算符 46
4.1.2 布爾賦值運算符 50
4.1.3 運算符的優先權更新 51
4.2 goto語句 52
4.3 分支 53
4.3.1 三元運算符 53
4.3.2 if語句 54
4.3.3 switch語句 57
4.4 循環 60
4.4.1 do循環 61
4.4.2 while循環 63
4.4.3 for循環 65
4.4.4 循環的中斷 69
4.5 小結 70
4.6 練習 71
第5章 變數的更多內容 72
5.1 類型轉換 72
5.1.1 隱式轉換 72
5.1.2 顯式轉換 74
5.1.3 使用Convert命令進行 顯式轉換 76
5.2 複雜的變數類型 79
5.2.1 枚舉 79
5.2.2 結構 83
5.2.3 數組 86
5.3 字元串的處理 91
5.4 小結 95
5.5 練習 96
第6章 函式 97
6.1 定義和使用函式 98
6.1.1 返回值 99
6.1.2 參數 101
6.2 變數的作用域 107
6.2.1 其他結構中變數的作用域 110
6.2.2 參數和返回值與全局數據 111
6.3 Main()函式 113
6.4 結構函式 114
6.5 函式的重載 115
6.6 委託 117
6.7 小結 119
6.8 練習 120
第7章 調試和錯誤處理 121
7.1 VS和VCE中的調試 121
7.1.1 非中斷(正常)模式下的調試 122
7.1.2 中斷模式下的調試 131
7.2 錯誤處理 139
7.2.1 try...catch...finally 140
7.2.2 列出和配置異常 144
7.2.3 異常處理的注意事項 145
7.3 小結 146
7.4 練習 146
第8章 面向對象編程簡介 147
8.1 什麼是面向對象編程 147
8.1.1 什麼是對象 148
8.1.2 所有的東西都是對象 151
8.1.3 對象的生命周期 151
8.1.4 靜態和實例類成員 152
8.2 OOP技術 153
8.2.1 接口 153
8.2.2 繼承 155
8.2.3 多態性 156
8.2.4 對象之間的關係 157
8.2.5 運算符重載 159
8.2.6 事件 159
8.2.7 引用類型和值類型 160
8.3 Windows應用程式中的OOP 160
8.4 小結 162
8.5 練習 163
第9章 定義類 164
9.1 C#中的類定義 164
9.2 System.Object 169
9.3 構造函式和析構函式 170
9.4 VS和VCE中的OOP工具 174
9.4.1 Class View視窗 174
9.4.2 對象瀏覽器 176
9.4.3 添加類 177
9.4.4 類圖 177
9.5 類庫項目 179
9.6 接口和抽象類 182
9.7 結構類型 184
9.8 小結 186
9.9 練習 186
第10章 定義類成員 187
10.1 成員定義 187
10.1.1 定義欄位 187
10.1.2 定義方法 188
10.1.3 定義屬性 189
10.1.4 在類圖中添加成員 194
10.1.5 重製成員 196
10.1.6 自動屬性 197
10.2 類成員的其他議題 197
10.2.1 隱藏基類方法 198
10.2.2 調用重寫或隱藏的基類方法 199
10.2.3 嵌套的類型定義 200
10.3 接口的實現 201
10.4 部分類定義 204
10.5 部分方法定義 206
10.6 示例應用程式 207
10.6.1 規劃應用程式 207
10.6.2 編寫類庫 208
10.6.3 類庫的客戶應用程式 214
10.7 小結 215
10.8 練習 216
第11章 集合、比較和轉換 217
11.1 集合 217
11.1.1 使用集合 218
11.1.2 定義集合 224
11.1.3 索引符 225
11.1.4 給CardLib添加Cards集合 227
11.1.5 關鍵字值集合和IDictionary 229
11.1.6 疊代器 231
11.1.7 深度複製 236
11.1.8 給CardLib添加深度複製 238
11.2 比較 239
11.2.1 類型比較 240
11.2.2 值比較 244
11.3 轉換 259
11.3.1 重載轉換運算符 259
11.3.2 as運算符 260
11.4 小結 261
11.5 練習 262
第12章 泛型 263
12.1 泛型的概念 263
12.2 使用泛型 264
12.2.1 可空類型 264
12.2.2 System.Collections.Generic 名稱空間 271
12.3 定義泛型 279
12.3.1 定義泛型類 280
12.3.2 定義泛型接口 291
12.3.3 定義泛型方法 291
12.3.4 定義泛型委託 293
12.4 小結 293
12.5 練習 293
第13章 其他OOP技術 295
13.1 ::運算符和全局名稱空間
13.2 定製異常 296
13.2.1 異常基類 297
13.2.2 給CardLib添加定製異常 297
13.3 事件 298
13.3.1 什麼是事件 298
13.3.2 使用事件 300
13.3.3 定義事件 302
13.4 擴展和使用CardLib 309
13.5 小結 317
13.6 練習 317
第14章 C# 3.0語言的改進 318
14.1 初始化器 318
14.1.1 對象初始化器 319
14.1.2 集合初始化器 320
14.2 類型推斷 323
14.3 匿名類型 325
14.4 擴展方法 328
14.5 ?表達式 333
14.5.1 複習匿名方法 333
14.5.2 把?表達式用於匿名方法 334
14.5.3 ?表達式的參數 337
14.5.4 ?表達式的語句體 337
14.5.5 ?表達式用作委託和表達式樹 338
14.5.6 ?表達式和集合 339
14.6 小結 342
14.7 練習 342
第Ⅱ部分 Windows 編 程
第15章 Windows編程基礎 347
15.1 控制項 347
15.1.1 屬性 348
15.1.2 控制項的定位、停靠和對齊 349
15.1.3 事件 350
15.2 Button控制項 352
15.2.1 Button控制項的屬性 352
15.2.2 Button控制項的事件 353
15.3 Label和LinkLabel控制項 354
15.4 TextBox控制項 355
15.4.1 TextBox控制項的屬性 355
15.4.2 TextBox控制項的事件 356
15.5 RadioButton和CheckBox控制項 363
15.5.1 RadioButton控制項的屬性 364
15.5.2 RadioButton控制項的事件 364
15.5.3 CheckBox控制項的屬性 364
15.5.4 CheckBox控制項的事件 364
15.5.5 GroupBox控制項 365
15.6 RichTextBox控制項 368
15.6.1 RichTextBox控制項的屬性 368
15.6.2 RichTextBox控制項的事件 369
15.7 ListBox和CheckedListBox控制項 374
15.7.1 ListBox控制項的屬性 375
15.7.2 ListBox控制項的方法 376
15.7.3 ListBox控制項的事件 376
15.8 ListView控制項 378
15.8.1 ListView控制項的屬性 378
15.8.2 ListView控制項的方法 380
15.8.3 ListView控制項的事件 381
15.8.4 ListViewItem 381
15.8.5 ColumnHeader 381
15.8.6 ImageList控制項 381
15.9 TabControl控制項 388
15.9.1 TabControl控制項的屬性 389
15.9.2 使用TabControl控制項 389
15.10 小結 392
15.11 練習 392
第16章 Windows Forms的高級功能 393
16.1 選單和工具列 393
16.1.1 兩個實質一樣的控制項 393
16.1.2 使用MenuStrip控制項 394
16.1.3 手工創建選單 394
16.1.4 ToolStripMenuItem控制項的其他屬性 397
16.1.5 給選單添加功能 397
16.2 工具列 399
16.2.1 ToolStrip控制項的屬性 399
16.2.2 ToolStrip的項 400
16.2.3 StatusStrip控制項 405
16.2.4 StatusStripStatusLabel的屬性 405
16.3 SDI和MDI應用程式 407
16.4 創建控制項 415
16.4.1 LabelTextbox控制項 417
16.4.2 調試用戶控制項 420
16.4.3 擴展LabelTextbox控制項 421
16.5 小結 424
16.6 練習 424
第17章 使用通用對話框 425
17.1 通用對話框 425
17.2 如何使用對話框 426
17.3 檔案對話框 427
17.3.1 OpenFileDialog 427
17.3.2 SaveFileDialog 438
17.4 列印 442
17.4.1 列印結構 442
17.4.2 列印多個頁面 447
17.4.3 PageSetupDialog 449
17.4.4 PrintDialog 451
17.5 列印預覽 455
17.5.1 PrintPreviewDialog 455
17.5.2 PrintPreviewControl 456
17.6 FontDialog和ColorDialog 457
17.6.1 FontDialog 457
17.6.2 ColorDialog 459
17.6.3 FolderBrowserDialog 460
17.7 小結 461
17.8 練習 461
第18章 部署Windows應用程式 463
18.1 部署概述 463
18.2 ClickOnce部署 464
18.3 Visual Studio安裝和部署項目類型 473
18.4 Microsoft Windows安裝程式結構 474
18.4.1 Windows Installer術語 474
18.4.2 Windows Installer的優點 476
18.5 為SimpleEditor創建安裝軟體包 476
18.5.1 規劃安裝內容 476
18.5.2 創建項目 477
18.5.3 項目屬性 478
18.5.4 安裝編輯器 480
18.5.5 File System編輯器 481
18.5.6 File Types編輯器 483
18.5.7 Launch Condition編輯器 485
18.5.8 User Interface編輯器 485
18.6 構建項目 488
18.7 安裝 489
18.7.1 Welcome 489
18.7.2 Read Me 489
18.7.3 License Agreement 490
18.7.4 Optional Files 490
18.7.5 選擇安裝資料夾 491
18.7.6 確認安裝 492
18.7.7 進度 492
18.7.8 結束安裝 493
18.7.9 運行應用程式 493
18.7.10 卸載 493
18.8 小結 493
18.9 練習 494
第Ⅲ部分 Web 編 程
第19章 Web編程基礎 497
19.1 概述 497
19.2 ASP .NET運行庫 498
19.3 創建簡單的Web頁面 498
19.4 伺服器控制項 504
19.5 事件處理程式 505
19.6 輸入的有效性驗證 509
19.7 狀態管理 512
19.7.1 客戶端的狀態管理 513
19.7.2 伺服器端的狀態管理 515
19.8 身份驗證和授權 517
19.8.1 身份驗證的配置 518
19.8.2 使用安全控制項 522
19.10 小結 530
19.11 練習 531
第20章 Web高級編程 532
20.1 母版頁 532
20.2 站點導航 537
20.3 用戶控制項 539
20.4 個性化配置 541
20.4.1 個性化配置組 543
20.4.2 組件的個性化配置 543
20.4.3 定製數據類型中的個性化配置 543
20.4.4匿名用戶的個性化配置 544
20.5 Web Parts 545
20.5.1 WebPartManager控制項 546
20.5.2 WebPartZone控制項 546
20.5.3 EditorZone控制項 548
20.5.4 CatalogZone控制項 550
20.5.5 ConnectionsZone控制項 551
20.6 JavaScript 554
20.6.1 Script元素 555
20.6.2 變數的聲明 555
20.6.3 定義函式 555
20.6.4 語句 556
20.6.5 對象 556
20.7 小結 560
20.8 練習 560
第21章 Web服務 561
21.1 Web服務推出之前 561
21.1.1 遠程過程調用(RPC) 562
21.1.2 SOAP 563
21.2 使用Web服務的場合 563
21.2.1 賓館旅行社代理應用程式 564
21.2.2 圖書發布應用程式 564
21.2.3 客戶應用程式的類型 564
21.2.4 應用程式的體系結構 564
21.3 Web服務的體系結構 565
21.3.1 可以調用的方法 565
21.3.2 調用方法 566
21.3.3 SOAP和防火牆 567
21.3.4 WS-I基本個性化配置 568
21.4 Web服務和.NET Framework 568
21.4.1 創建Web服務 568
21.4.2 客戶程式 570
21.5 創建簡單的ASP .NET Web服務 571
21.6 測試Web服務 572
21.7 執行Windows客戶程式 574
21.8 異步調用服務 577
21.9 執行ASP .NET客戶程式 580
21.10 傳送數據 581
21.11 小結 584
21.12 練習 584
第22章 Ajax編程 586
22.1 Ajax概述 586
22.2 UpdatePanel控制項 587
22.3 Timer控制項 591
22.4 UpdateProgress控制項 592
22.5 Web服務 594
22.6 擴展控制項 598
22.7 小結 600
22.8 練習 600
第23章 部署Web應用程式 601
23.1 Internet Information Services 601
23.2 IIS配置 602
23.3 複製Web站點 604
23.4 發布Web站點 606
23.5 Windows安裝程式 607
23.5.1 創建安裝程式 607
23.5.2 安裝Web 應用程式 609
23.6 小結 610
23.7 練習 610
第Ⅳ部分 數 據 訪 問
第24章 檔案系統數據 613
24.1 流 613
24.2 用於輸入和輸出的類 614
24.2.1 File類和Directory類 615
24.2.2 FileInfo類 616
24.2.3 DirectoryInfo類 617
24.2.4 路徑名和相對路徑 618
24.2.5 FileStream對象 618
24.2.6 StreamWriter對象 624
24.2.7 StreamReader對象 626
24.2.8 讀寫壓縮檔案 632
24.3 序列化對象 635
24.4 監控檔案結構 639
24.5 小結 645
24.6 練習 646
第25章 XML 647
25.1 XML文檔 647
25.1.1 XML元素 647
25.1.2 屬性 648
25.1.3 XML聲明 649
25.1.4 XML文檔的結構 649
25.1.5 XML名稱空間 650
25.1.6 格式良好並有效的XML 651
25.1.7 驗證XML文檔 651
25.2 在應用程式中使用XML 654
25.2.1 XML文檔對象模型 655
25.2.2 選擇節點 663
25.3 小結 670
25.4 練習 671
第26章 LINQ簡介 672
26.1 LINQ的變體 673
26.2 第一個LINQ查詢 673
26.2.1 用var關鍵字聲明結果變數 675
26.2.2 指定數據源:from子句 675
26.2.3 指定條件:where子句 675
26.2.4 指定元素:select子句 676
26.2.5 完成:使用foreach循環 676
26.2.6 延遲執行的查詢 676
26.3使用LINQ方法語法和?表達式 676
26.3.1 LINQ擴展方法 676
26.3.2 查詢語法和方法語法 677
26.3.3 ?表達式 677
26.4 排序查詢結果 679
26.5 orderby子句 680
26.6 用方法語法排序 681
26.7 查詢大型數據集 682
26.8 合計運算符 685
26.9 查詢複雜的對象 688
26.10 投射:在查詢中創建新對象 691
26.11 投射:方法語法 693
26.12 單值選擇查詢 693
26.13 Any和All 694
26.14 多級排序 696
26.15 多級排序方法語法:ThenBy 698
26.16 組合查詢 698
26.17 Take和Skip 700
26.18 First和FirstOrDefault 702
26.19 集運算符 703
26.20 Join查詢 706
26.21 資源和進一步閱讀 707
26.22 小結 707
26.23 練習 707
第27章 LINQ to SQL 709
27.1 對象相關映射 709
27.2 安裝SQL Server和Northwind示例數據 710
27.2.1 安裝SQL Server Express2005 710
27.2.2 安裝Northwind示例資料庫 711
27.3 第一個LINQ to SQL查詢 712
27.4 瀏覽LINQ to SQL關係 717
27.5 進一步探討LINQ to SQL 720
27.6 LINQ to SQL中的組合、排序和其他高級查詢 723
27.7 顯示生成的SQL 725
27.8 用LINQ to SQL綁定數據 729
27.9 用LINQ to SQL更新綁定數據 733
27.10 小結 734
27.11 練習 735
第28章 ADO .NET和LINQ over DataSet 736
28.1 ADO .NET概述 736
28.1.1 ADO .NET名稱的來源 737
28.1.2 ADO .NET的設計目標 738
28.2 ADO .NET類和對象概述 739
28.2.1 提供者對象 739
28.2.2 用戶對象 740
28.2.3 使用System.Data名稱空間 741
28.3 用DataReader讀取數據 742
28.4 用DataSet讀取數據 749
28.4.1 用數據填充DataSet 749
28.4.2 訪問DataSet中的表、行和列 749
28.5 更新資料庫 752
28.5.1 給資料庫添加行 755
28.5.2 刪除行 761
28.6 在DataSet中訪問多個表 762
28.6.1 ADO .NET中的關係 762
28.6.2 用關係導航 763
28.7 XML和ADO .NET 770
28.8 ADO .NET中的SQL支持 773
28.8.1 DataAdapter對象中的 SQL命令 773
28.8.2 直接執行SQL命令 776
28.8.3 調用SQL存儲過程 778
28.9 使用LINQ over DataSet和ADO .NET 780
28.10 小結 784
28.11 練習 784
第29章 LINQ to XML 785
29.1 LINQ to XML函式構造方法 785
29.2 保存和載入XML文檔 789
29.2.1 從字元串中載入XML 791
29.2.2 已保存的XML文檔內容 792
29.3 處理XML片段 792
29.4 通過LINQ to XML生成 XML 794
29.5 查詢XML文檔 798
29.6 小結 804
29.7 練習 804
第Ⅴ部分 其 他 技 術
第30章 屬性 809
30.1 什麼是屬性 809
30.2 反射 812
30.3 內置屬性 815
30.3.1 System.Diagnostics.ConditionalAttribute 815
30.3.2 System.Obsolete Attribute 817
30.3.3 System.Serializable
Attribute 818
30.3.4 System.Reflection.AssemblyDelaySignAttribute 821
30.4 定製屬性 824
30.4.1 BugFixAttribute 824
30.4.2 System.AttributeUsageAttribute 826
30.5 小結 830
第31章 XML文檔說明 831
31.1 添加XML文檔說明 831
31.1.1 XML文檔說明的注釋 833
31.1.2 使用類圖添加XML文檔說明 839
31.1.3 生成XML文檔說明檔案 842
31.1.4 帶有XML文檔說明的應用程式示例 844
31.2 使用XML文檔說明 846
31.2.1 編程處理XML文檔說明 846
31.2.2 用XSLT格式化XML文檔說明 848
31.2.3 文檔說明工具 849
31.3 小結 850
31.4 練習 851
第32章 網路 852
32.1 聯網概述 852
32.1.1 名稱的解析 855
32.1.2 統一資源標識符 856
32.1.3 TCP和UDP 857
32.1.4 套用協定 857
32.2 網路編程選項 859
32.3 WebClient 859
32.4 WebRequest和WebResponse 861
32.5 TcpListener和TcpClient 868
32.6 小結 876
32.7 練習 876
第33章 GDI+簡介 877
33.1 圖形繪製概述 877
33.1.1 Graphics類 878
33.1.2 對象的刪除 878
33.1.3 坐標系統 879
33.1.4 顏色 884
33.2 使用Pen類繪製線條 885
33.3 使用Brush類繪製圖形 887
33.4 使用Font 類繪製文本 890
33.5 使用圖像進行繪製 893
33.5.1 使用紋理畫筆繪圖 895
33.5.2 使用鋼筆繪製圖像 897
33.5.3 雙倍緩衝 898
33.6 GDI+的高級功能 900
33.6.1 剪下 900
33.6.2 System.Drawing.Drawing2D 901
33.6.3 System.Drawing.Imaging 901
33.7 小結 901
33.8 練習 902
第 34 章 Windows Presentation Foundation 903
34.1 WPF的概念 904
34.1.1 WPF給設計人員帶來的好處 904
34.1.2 WPF給C#開發人員帶來的好處 906
34.2 基本WPF應用程式的組成 906
34.3 WPF基礎 916
34.3.1 XAML語法 917
34.3.2 桌面和Web應用程式 919
34.3.3 Application對象 920
34.3.4 控制項基 920
34.3.5 控制項的布局 928
34.3.6 控制項的樣式 936
34.3.7 觸發器 941
34.3.8 動畫 942
34.3.9 靜態和動態資源 944
34.4 用WPF編程 949
34.4.1 WPF用戶控制項 950
34.4.2 實現依賴屬性 950
34.5 小結 959
34.6 練習 960
第35 章 Windows Communication Foundation 961
35.1 WCF是什麼 961
35.2 WCF概念 962
35.2.1 WCF通信協定 962
35.2.2 地址、端點和綁定 963
35.2.3 契約 964
35.2.4 訊息模式 965
35.2.5 行為 965
35.2.6 主機 965
35.3 WCF編程 966
35.3.1 定義WCF服務契約 973
35.3.2 自存儲的WCF服務 979
35.4 小結 985
35.5 練習 986
第36章 Windows Workflow Foundation 987
36.1 活動 990
36.1.1 DelayActivity 990
36.1.2 SuspendActivity 991
36.1.3 WhileActivity 992
36.1.4 SequenceActivity 994
36.1.5 定製活動 997
36.2 工作流運行庫 1002
36.3 數據綁 1007
36.4 小結 1010
序言
C#是Microsoft在2000年7月推出.NET Framework的第1版時提供的一種全新語言。C#的快速流行,使之成為使用.NET Framework的Windows和Web開發人員無可爭議的語言選擇。他們喜歡C#的一個原因是其派生於C/C++的簡潔語法,這種語法簡化了以前困擾一些程式設計師的問題。儘管做了這些簡化,但C#仍保持了C++原來的功能,所以現在沒有理由不從C++轉向C#。C#語言並不難,也非常適合於學習基本編程技術。易於學習,再加上.NET Framework的功能,使C#成為開始您編程生涯的絕佳方式。
C#的最新版本3.0是.NET Framework 3.5的一部分,它建立在已有的成功基礎之上,還添加了一些更吸引人的功能。其中一些功能取自於C++(至少從表面上看是這樣),而另外一些功能是全新的。Visual Studio的最新版本和開發工具的Express系列也有許多變化和改進,這大大簡化了編程,顯著提高了效率。
本書將全面介紹C#編程的所有知識,從該語言本身一直到Windows和Web編程,再到數據源的使用,最後是一些高級技術,例如,圖形編程。我們還將學習Visual C# Express 2008、Visual Web Developer Express 2008和Visual Studio 2008的功能和利用它進行應用程式開發的各種方式。本書界面友好,闡述清晰,每一章都以前面章節的內容為基礎,便於讀者掌握高級技術。每個概念都會根據需要來介紹和討論,而不會突然冒出某個技術術語來妨礙讀者的閱讀和理解。本書儘量不使用技術術語,但如果需要,將根據上下文進行正確的定義和布置。
本書的作者都是各自領域的專家,都是C#語言和.NET Framework的愛好者,沒有人比他們更有資格講授C#了,他們將在您掌握從基本規則到高級技術的過程中為您保駕護航。除了基礎知識之外,本書還有許多有益的提示、練習、完全成熟的示例代碼(可以從p2p.wrox. com上下載),在您的職業生涯中一定會用到它們。
本書將毫無保留地傳授這些知識,希望讀者能通過本書成為最優秀的程式設計師。
0.1 本書讀者對象
本書主要針對想學習如何使用.NET Framework編寫C#程式的所有人。本書前面的章節介紹該語言本身,讀者不需要具備任何編程經驗。以前對其他語言有一定了解的開發人員,會覺得這些章節的內容非常熟悉。C#語法的許多方面都與其他語言相同,許多結構對所有的程式語言來說都是一樣的(例如,循環和分支結構)。但是,即使是有經驗的程式設計師也可以從這些章節中獲益,理解這些技術套用於C#的特徵。
如果讀者是編程新手,就應從頭開始學習。如果讀者對.NET Framework比較陌生,但知道如何編程,就應閱讀第1章,然後快速跳讀後面的幾章,這樣就能掌握C#語言的套用方式了。如果讀者知道如何編程,但以前沒有接觸過面向對象的程式語言,就應從第8章開始閱讀以後的章節。
如果讀者對C#語言比較了解,就可以集中精力學習詳細論述最新.NET Framework和C#語言開發的章節,尤其是集合、泛型和C# 3.0語言的新增內容(第11~14章),或者完全跳過本書的第I部分,從第15章開始學習。
本書章節的編寫目的有兩個:這些章節可以按順序閱讀,是C#語言的一個完整教程。還可以按照需要深入學習這些章節,將其作為一本參考資料。
除了核心內容之外,每一章還包含一組練習,完成這些練習有助於讀者理解所學習的內容。練習包括簡單的選擇題、判斷題以及需要修改或建立應用程式的較難問題。
0.2 本書結構
本書分為6個部分。
● 引言:概述本書的內容和作者。
● C#語言:介紹了C#語言的所有內容,從基礎知識到面向對象的技術,應有盡有。
● Windows編程:介紹如何用C#編寫Windows應用程式,如何部署它們。
● Web編程:描述Web應用程式的開發、Web服務和Web應用程式的部署。
● 數據訪問:介紹在應用程式中如何使用數據,包括存儲在硬碟檔案上的數據、以XML格式存儲的數據和資料庫中的數據。
● 其他技術:講述使用C#和.NET Framework的一些
額外方式,包括屬性、XML文檔說明、網路和GDI+圖形編程。還探討了由.NET 3.0引入且由.NET 3.5改進的WPF、WCF和WF技術。
下面介紹本書5個重要部分中的章節。
0.2.1 C#語言(第1~~14章)
第1章介紹C#以及它與.NET的關係,了解在這個環境下編程的基礎知識,以及Visual C# Express(VCE)和VS與它的關係。
第2章開始介紹C#應用程式開發,學習C#的語法,並把C#和樣例命令行、Windows應用程式結合起來使用。這些示例將說明C#如何快速輕鬆地啟動和運行,並附帶介紹VCE和VS開發環境以及本書將使用的基本視窗和工具。
接著,第3章學習C#語言的更多基礎知識,理解變數的含義以及如何操縱它們。第4章將用流程控制(循環和分支)改進應用程式的結構,第5章介紹一些高級的變數類型,如數組。第6章開始以函式的形式封裝代碼,這樣就更易於執行重複的操作,代碼更容易理解。
從第7章開始將運用C#語言的基礎知識,調試應用程式,這包括在運行應用程式時輸出跟蹤信息,使用VS查找錯誤,在強大的調試環境中找出解決問題的辦法。
第8章將學習面向對象編程(Object-Oriented Programming,OOP)。首先了解這個術語的含義,回答"什麼是對象?"。這個OOP初看起來是比較難的問題。我們將用整整一章的篇幅來介紹它,解釋對象的強大之處。直到本章的最後才會使用C#代碼。
第9章將理論套用於實踐,開始在C#應用程式中使用OOP時,一切都會發生變化,而這正是C#的強大之處。第10章首先介紹如何定義類和接口,然後探討類成員(包括欄位、屬性和方法),在這一章的最後將開始創建一個撲克牌遊戲應用程式,這個應用程式將在幾章中開發完成,它非常有助於理解OOP。
學習了OOP在C#中的工作原理後,第11章將介紹幾種常見的OOP場景,包括處理對象集合、比較和轉換對象。第12章討論.NET 2.0中C#的一個非常有用的新特性——泛型,利用它可以創建非常靈活的類。第13章通過一些其他技術和事件(它在Windows編程中非常重要)完成C#語言和OOP的討論。最後,第14章介紹C# 3.0中引入的新特性。
0.2.2 Windows編程(第15~~18章)
第15章開始介紹Windows編程的概念,理解在VCE和VS中如何實現Windows編程。這一章也是從基礎知識開始介紹,並構建知識體系。第16章學習如何在應用程式中使用.NET Framework提供的各種控制項。我們將簡要論述.NET如何以圖形化的方式建立Windows應用程式,以最少的時間和精力創建高級應用程式。
第17章介紹一些常用的功能。利用這些功能可以方便地添加專業功能,例如,檔案管理、列印等。第18章討論應用程式的部署,包括建立安裝程式,以便用戶快速安裝和運行應用程式。
0.2.3 Web編程(第19~~23章)
這個部分的結構與Windows編程部分類似。首先,第19章描述了構成最簡單的Web應用程式的控制項,如何把它們組合在一起,讓它們使用ASP .NET執行任務。第20章以此為基礎,介紹了更高級的技術、各種控制項、Web環境下的狀態管理,以及Web標準的遵循。
第21章將涉足Web服務的精彩世界,它可以編程訪問Internet上的信息和功能,可以把複雜的數據和功能以獨立於平台的方式嵌入Web和Windows應用程式。這一章討論如何使用和創建Web服務,以及.NET提供的其他工具,如安全性。
第22章介紹Ajax編程,這種方式可以給Web應用程式添加動態的客戶端功能。.NET Framework 3.5通過ASP .NET Ajax提供了Ajax功能,本章會解釋如何使用它。
最後,第23章探討Web應用程式和服務的部署,尤其是可以通過單擊按鈕把應用程式發布到Web上的VS和VWD新特性。
0.2.4 數據訪問(第24~~29章)
第24章介紹了應用程式如何保存和檢索磁碟上的數據,作為簡單的文本檔案或者更複雜的數據表示方式。這一章還將討論如何壓縮數據,如何操縱舊數據(例如,用逗號隔開的值(CSV)檔案),如何監視和處理檔案系統的變化。
第25章學習數據交換的事實標準XML。前面的章節接觸過XML幾次,而這一章將了解XML的基本規則,論述XML的所有功能。
本部分的其餘章節介紹LINQ,這是內置於.NET Framework最新版本中的查詢語言。第26章簡要介紹LINQ,第27章使用LINQ訪問資料庫中的數據。第28章介紹如何聯合使用LINQ和舊的ADO .NET 數據訪問技術。最後,第29章學習如何使用LINQ處理XML數據。
0.2.5 其他技術(第30~~36章)
本書的最後一部分將介紹C#和.NET主題的其他技術。第30章將探討屬性,可以在程式集中包含類型的其他信息,添加用其他方式很難實現的功能。
第31章研究XML文檔說明,並介紹如何在原始碼中給應用程式添加注釋。我們將學習如何添加這些信息,如何使用和提取它們,從而從代碼中生成MSDN樣式的文檔說明。
第32章介紹網路,應用程式如何相互通信,如何與各種網路上的其他服務通信。第33章從本書前面學習的各種技術中解脫出來,研究用GDI+進行圖形編程的主題,理解如何操縱圖形,設定應用程式的樣式,這一章打開了一條通往各種C#應用程式的大門。
最後要討論.NET Framework最新版本中的幾個新技術。第34章介紹Windows Presentation Foundation(WPF),了解它給Windows和Web開發帶來了哪些變化。第35章介紹Windows Communication Foundation(WCF),它把Web服務的概念擴展和改進為一種企業級的通信技術。本書的最後一章是第36章,介紹了Windows Workflow Foundation(WF),它允許在應用程式中執行工作流功能,因此可以定義一些操作,這些操作由外部的互動操作控制,以特定的順序執行,這對許多類型的應用程式都很有幫助。
0.3 使用本書的要求
本書中C#和.NET Framework的代碼和描述都適用於.NET 3.5。除了Framework之外,不需要其他東西就可以理解本書的這個方面,但許多示例都需要Visual C# Express 2008作為主要開發工具,一些章節則使用了Visual Web Developer Express 2008。另外,一些功能只能在Visual Studio 2008中使用,這會在相應的地方明確指出。
0.4 原始碼
在讀者學習本書中的示例時,可以手工輸入所有的代碼,也可以使用本書附帶的原始碼檔案。
使用Search工具或使用書名列表就可以找到本書。接著單擊本書細目頁面上的Download Code連結,就可以獲得所有的原始碼。
注釋:
由於許多圖書的標題都很類似,所以按ISBN搜尋是最簡單的,本書英文版的ISBN是978-0-470-19135-4。
在下載了代碼後,只需用自己喜歡的解壓縮軟體對它進行解壓縮即可。
儘管我們已經盡了各種努力來保證文章或代碼中不出現錯誤,但是錯誤總是難免的,如果您在本書中找到了錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤表,可以讓其他讀者避免受挫,當然,這還有助於提供更高質量的信息。
請給聯繫我們,我們就會檢查您的反饋信息,如果是正確的,我們將在本書的後續版本中採用。
要在網站上找到本書英文版的勘誤表,通過Search工具或書名列表查找本書,然後在本書的細目頁面上,單擊Book Errata連結。在這個頁面上可以查看到Wrox編輯已提交和貼上的所有勘誤項。完整的圖書列表還包括每本書的勘誤表。
0.6 WROX
要與作者和同行討論,請加入wrox上的P2P論壇。這個論壇是一個基於Web的系統,便於您張貼與Wrox圖書相關的訊息和相關技術,與其他讀者和技術用戶交流心得。該論壇提供了訂閱功能,當論壇上有新的訊息時,它可以給您傳送感興趣的論題。Wrox作者、編輯和其他業界專家和讀者都會到這個論壇上來探討問題。
在wrox上,有許多不同的論壇,它們不僅有助於閱讀本書,還有助於開發自己的應用程式。要加入論壇,可以遵循下面的步驟:
(1) 進入wrox,單擊Register連結。
(2) 閱讀使用協定,並單擊Agree按扭。
(3) 填寫加入該論壇所需要的信息和自己希望提供的其他信息,單擊Submit按扭。
注釋:
不加入P2P也可以閱讀論壇上的訊息,但要張貼自己的訊息,就必須加入該論壇。
加入論壇後,就可以張貼新訊息,回響其他用戶張貼的訊息。可以隨時在Web上閱讀訊息。如果要讓該網站給自己傳送特定論壇中的訊息,可以單擊論壇列表中該論壇名旁邊的Subscribe to this Forum圖示。
關於使用Wrox P2P的更多信息,可閱讀P2P FAQ,了解論壇軟體的工作情況以及P2P和Wrox圖書的許多常見問題。要閱讀FAQ,可以在任意P2P頁面上單擊FAQ連結。
圖書推薦
《C#入門經典(第4版)》是一本成就無數C#程式設計師的經典名著,厚而不“重”,可幫助您輕鬆掌握C#的各種編程知識,為您的職業生涯打下堅實的基礎,《C#入門經典》自第1版出版以來,全球銷量已經達數萬冊,在中國也有近8萬冊的銷量,已經成為廣大初級C#程式設計師首選的入門教程,也是目前國內市場上最暢銷的C#專業店銷書,曾兩次被CSDN、《程式設計師》等機構和讀者評選為“最受讀者喜愛的十大技術開發類圖書”!第4版面向C#2008和.NET 3.5 繼續完善原有內容,同時全面介紹.NET的最新技術和特性。
Wrox暢銷書!C#經典名著!2005年最杈威的十大IT圖書!2 006年最受讀者喜愛的十大技術開發類圖書!2008年全國高校出版社優秀銷書一等獎!2006~2008年最暢銷的 C#入門教程!
作者簡介
作者:(美國)karli Watson (美國)Christian Nagel 譯者:齊立波
黃靜齊立波,計算機專業碩士、大學講師,一直從事C/C++和C#程式設計方面的教學與科研工作,曾參與編寫多本計算機教材,並為一些軟體公司翻譯過大量的技術文檔。
黃靜,計算機專業博士,在程式設計、
軟體工程和網路安全等方面有著多年的研究和實戰經驗,曾為NET技術在國內的推廣作出了重要貢獻,翻譯和發表了多篇有關.NET的技術文檔和文章。