圖書目錄
第Ⅰ部分C#語言
第1章C#簡介3
1.1.NETFramework的含義3
1.1.1.NETFramework的內容4
1.1.2使用.NETFramework編寫應用程式4
1.2C#的含義7
1.2.1用C#能編寫什麼樣的應用程式7
1.2.2本書中的C#8
1.3VisualStudio20128
1.3.1VisualStudioExpress2012產品9
1.3.2解決方案9
1.4小結9
1.5本章要點10
第2章編寫C#程式11
2.1VisualStudio2012開發環境12
2.2控制台應用程式14
2.2.1SolutionExplorer視窗17
2.2.2Properties視窗18
2.2.3ErrorList視窗18
2.3桌面應用程式19
2.4小結22
2.5本章要點22
第3章變數和表達式23
3.1C#的基本語法24
3.2C#控制台應用程式的基本結構26
3.3變數27
3.3.1簡單類型28
3.3.2變數的命名31
3.3.3字面值33
3.3.4變數的聲明和賦值34
3.4表達式35
3.4.1數學運算符35
3.4.3運算符的優先權39
3.4.4名稱空間40
3.5小結43
3.6練習43
3.7本章要點44
第4章流程控制45
4.1布爾邏輯45
4.1.2按位運算符49
4.1.3運算符優先權的更新52
4.3分支54
4.3.1三元運算符54
4.3.2if語句55
4.3.3switch語句58
4.4循環61
4.4.1do循環62
4.4.2while循環64
4.4.3for循環66
4.4.4循環的中斷70
4.4.5無限循環71
4.5小結72
4.6練習72
4.7本章要點73
第5章變數的更多內容75
5.1類型轉換75
5.1.1隱式轉換76
5.1.2顯式轉換77
5.1.3使用Convert命令進行顯式轉換80
5.2複雜的變數類型83
5.2.1枚舉83
5.2.2結構87
5.2.3數組89
5.3字元串的處理95
5.4小結100
5.5練習100
5.6本章要點101
第6章函式103
6.1定義和使用函式104
6.1.1返回值105
6.1.2參數107
6.2變數的作用域114
6.2.1其他結構中變數的作用域116
6.2.2參數和返回值與全局數據118
6.3Main()函式119
6.4結構函式121
6.5函式的重載122
6.6委託124
6.7小結127
6.8練習127
6.9本章要點128
第7章調試和錯誤處理129
7.1VisualStudio中的調試130
7.1.1非中斷(正常)模式下的調試130
7.1.2中斷模式下的調試138
7.2錯誤處理145
7.2.1try.catch.finally146
7.2.2列出和配置異常150
7.2.3異常處理的注意事項151
7.3小結152
7.4練習152
7.5本章要點152
第8章面向對象編程簡介155
8.1面向對象編程的含義156
8.1.1對象的含義156
8.1.2一切皆對象159
8.1.3對象的生命周期159
8.1.4靜態和實例類成員160
8.2OOP技術161
8.2.1接口161
8.2.2繼承163
8.2.3多態性164
8.2.4對象之間的關係166
8.2.6事件167
8.2.7引用類型和值類型168
8.3桌面應用程式中的OOP168
8.4小結171
8.5練習172
8.6本章要點173
第9章定義類175
9.1C#中的類定義175
9.2System.Object180
9.3構造函式和析構函式182
9.4VisualStudio中的OOP工具186
9.4.1ClassView視窗186
9.4.2對象瀏覽器187
9.4.3添加類188
9.4.4類圖189
9.5類庫項目190
9.6接口和抽象類193
9.7結構類型195
9.8淺度和深度複製197
9.9小結198
9.10練習198
9.11本章要點199
第10章定義類成員201
10.1成員定義201
10.1.1定義欄位202
10.1.2定義方法202
10.1.3定義屬性203
10.1.4在類圖中添加成員208
10.1.5重構成員211
10.1.6自動屬性212
10.2類成員的其他主題212
10.2.1隱藏基類方法212
10.2.2調用重寫或隱藏的基類方法214
10.2.3嵌套的類型定義215
10.3接口的實現217
10.4部分類定義221
10.5部分方法定義222
10.6示例應用程式224
10.6.1規劃應用程式224
10.6.2編寫類庫224
10.6.3類庫的客戶應用程式231
10.7CallHierarchy視窗232
10.8小結233
10.9練習233
10.10本章要點234
第11章集合、比較和轉換235
11.1集合236
11.1.1使用集合236
11.1.2定義集合242
11.1.3索引符243
11.1.4給CardLib添加Cards集合245
11.1.5鍵控集合和IDictionary248
11.1.6疊代器250
11.1.7疊代器和集合254
11.1.8深度複製254
11.1.9給CardLib添加深度複製257
11.2比較258
11.2.1類型比較258
11.2.2值比較263
11.3轉換278
11.3.1重載轉換運算符278
11.3.2as運算符279
11.4小結280
11.5練習281
11.6本章要點282
第12章泛型283
12.1泛型的概念284
12.2使用泛型285
12.2.1可空類型285
12.2.2System.Collections.Generic名稱空間292
12.3定義泛型類型301
12.3.1定義泛型類302
12.3.2定義泛型接口313
12.3.3定義泛型方法313
12.3.4定義泛型委託315
12.4變體315
12.4.1協變316
12.4.2抗變317
12.5小結317
12.6練習318
12.7本章要點319
第13 章 其他OOP 技術 321
13.1 ::運算符和全局名稱空間限定符 321
13.2 定製異常 323
13.3 事件 325
13.3.1 事件的含義 325
13.3.2 處理事件 326
13.3.3 定義事件 328
13.4 擴展和使用CardLib 336
13.5 特性 344
13.5.1 讀取特性 344
13.5.2 創建特性 345
13.6 小結 346
13.7 練習 347
13.8 本章要點 347
第14 章 C#語言的改進 349
14.1 初始化器 350
14.1.1 對象初始化器 350
14.1.2 集合初始化器 352
14.2 類型推理 355
14.3 匿名類型 356
14.4 動態查找 360
14.4.1 動態類型 361
14.4.2 IDynamicMetaObject-Provider 364
14.5 高級方法參數 365
14.5.1 可選參數 365
14.5.2 命名參數 367
14.5.3 命名參數和可選參數的規則 371
14.6 擴展方法 371
14.7 Lambda 表達式 375
14.7.1 複習匿名方法 375
14.7.2 把Lambda 表達式用於匿名方法 376
14.7.3 Lambda 表達式的參數 379
14.7.4 Lambda 表達式的語句體 380
14.7.5 Lambda 表達式用作委託和表達式樹 381
14.7.6 Lambda 表達式和集合 381
14.8 調用方信息特性 384
14.9 小結 386
14.10 練習 387
14.11 本章要點 388
第15 章 基本桌面編程 393
15.1 XAML 394
15.1.1 關注點分離 394
15.1.2 XAML 基礎知識 395
15.2 動手實踐 396
15.2.1 WPF 控制項 397
15.2.2 屬性 398
15.2.3 事件 401
15.3 控制項布局 405
15.3.1 堆疊順序 406
15.3.2 對齊、邊距、填充和尺寸 406
15.3.3 Border 控制項 407
15.3.4 Canvas 控制項 407
15.3.5 DockPanel 控制項 408
15.3.6 StackPanel 控制項 410
15.3.7 Grid 控制項 412
15.4 遊戲客戶端 414
15.4.1 About 視窗 414
15.4.2 Options視窗 419
15.4.3 數據綁定 427
15.4.4 啟動遊戲 433
15.5 小結 436
15.6 練習 437
15.7 本章要點 437
第16 章 高級桌面編程 439
16.1 主視窗 439
16.1.1 選單控制項 440
16.1.2 路由命令和選單 440
16.2 創建控制項並設定樣式 443
16.2.1 樣式 444
16.2.2 模板 444
16.2.3 值轉換器 448
16.2.4 觸發器 450
16.2.5 動畫 451
16.3 WPF 用戶控制項 453
16.4 把所有內容結合起來 462
16.4.1 重構域模型 463
16.4.2 視圖模型 467
16.4.3 大功告成 475
16.5 小結 483
16.6 練習 484
16.7 本章要點 484
第17 章 Windows Store 應用程式 485
17.1 入門 485
17.2 Windows Store 應用程式與桌面應用程式 487
17.3 開發Windows Store應用程式 488
17.3.1 視圖模式 488
17.3.2 磁貼和鎖屏提醒 492
17.3.3 應用程式的生存期 492
17.4 應用程式的開發 492
17.4.1 WPF 與Windows Store應用程式的XAML 差異 493
17.4.2 模板和頁面 494
17.4.3 沙箱應用程式 495
17.4.4 在頁面之間導航 500
17.4.5 管理狀態 503
17.5 修改KarliCards 遊戲(第1 部分) 503
17.5.1 創建CardLib 項目 503
17.5.2 可視化方面的修改 511
17.5.3 轉換用戶控制項 511
17.6 Windows Store 應用程式中的常見元素 518
17.6.1 AppBar 控制項 518
17.6.2 設定面板 520
17.6.3 磁貼、鎖屏提醒以及初始螢幕 523
17.7 修改KarliCards 遊戲(第2 部分) 524
17.8 Windows 套用商店529
17.9 小結 530
17.10 練習 530
17.11 本章要點 531
第18 章 部署桌面應用程式 533
18.1 部署概述 534
18.2 ClickOnce 部署 534
18.2.1 實現ClickOnce 部署 535
18.2.2 用ClickOnce 安裝應用程式 541
18.2.3 創建和使用應用程式的更新包 542
18.3 InstallShield Limited Edition 543
18.4 小結 549
18.5 練習 549
18.6 本章要點 549
第Ⅲ部分 Web 編 程
第19 章 ASP.NET Web 編程 553
19.1 Web 應用程式概述 554
19.2 ASP.NET 運行庫 554
19.3 創建簡單的Web頁面 555
19.4 伺服器控制項.562
19.5 ASP.NET 回送 563
19.6 ASP.NET AJAX 回送 568
19.7 輸入的有效性驗證 571
19.8 狀態管理 575
19.8.1 客戶端的狀態管理 576
19.8.2 伺服器端的狀態管理 578
19.9 樣式 581
19.10 母版頁 585
19.11 站點導航 589
19.12 身份驗證和授權 592
19.12.1 身份驗證的配置 593
19.12.2 使用安全控制項 596
19.13 讀寫SQL Server資料庫598
19.14 小結 607
19.15 練習 607
19.16 本章要點 607
第20章部署Web應用程式609
20.1InternetInformationServices609
20.2IIS配置611
20.3複製Web站點612
20.4發布Web站點615
20.5小結617
20.6練習618
20.7本章要點618
第Ⅳ部分數據訪問
第21章檔案系統數據621
21.1流621
21.2用於輸入和輸出的類622
21.2.1File類和Directory類623
21.2.2FileInfo類624
21.2.3DirectoryInfo類625
21.2.4路徑名和相對路徑626
21.2.5FileStream對象626
21.2.6StreamWriter對象632
21.2.7StreamReader對象634
21.2.8異步檔案訪問641
21.2.9讀寫壓縮檔案641
21.3序列化對象644
21.4監控檔案系統648
21.5小結653
21.6練習653
21.7本章要點654
第22章XML655
22.1XML文檔656
22.1.1XML元素656
22.1.2特性657
22.1.3XML聲明657
22.1.4XML文檔的結構658
22.1.5XML名稱空間658
22.1.6格式良好並有效的XML659
22.1.7驗證XML文檔660
22.2在應用程式中使用XML.663
22.2.1XML文檔對象模型663
22.2.2選擇節點673
22.2.3XPath673
22.3小結.677
22.4練習.677
22.5本章要點.678
第23章LINQ簡介679
23.1第一個LINQ查詢680
23.1.1用var關鍵字聲明
結果變數681
23.1.2指定數據源:from子句682
23.1.3指定條件:where子句682
23.1.4選擇元素:select子句682
23.1.5完成:使用foreach循環683
23.1.6延遲執行的查詢683
23.2使用LINQ方法語法.683
23.2.1LINQ擴展方法683
23.2.2查詢語法和方法語法684
23.3排序查詢結果685
23.4orderby子句687
23.5用方法語法排序687
23.6查詢大型數據集689
23.7聚合運算符.691
23.8查詢複雜的對象694
23.9投影:在查詢中創建新對象698
23.10投影:方法語法700
23.11單值選擇查詢700
23.12Any()和All()方法701
23.13多級排序.703
23.14多級排序方法語法:ThenBy705
23.15組合查詢.705
23.16Take()和Skip()方法707
23.17First()和FirstOrDefault()方法709
23.18LINQ集運算符710
23.19Join查詢713
23.20小結714
23.21練習714
23.22本章要點715
第24 章 套用LINQ717
24.1 LINQ 的變體 717
24.2 給資料庫使用LINQ 718
24.3 安裝SQL Server 和Northwind 示例數據 718
24.3.1 安裝SQL Server Express .719
24.3.2 安裝Northwind 示例資料庫719
24.4 第一個LINQ 資料庫查詢 719
24.5 瀏覽資料庫關係 723
24.6 使用LINQ to XML 725
24.7 LINQ to XML 函式構造方式 725
24.8 保存和載入XML 文檔 729
24.8.1 從字元串中載入XML 732
24.8.2 已保存的XML文檔內容 732
24.9 處理XML 片段 732
24.10 從資料庫中生成XML 734
24.11 查詢XML 文檔的方法 737
24.12 使用LINQ to XML查詢成員 738
24.12.1 Elements() 738
24.12.2 Descendants() 739
24.12.3 Attributes() 741
24.13 小結 743
24.14 練習 743
24.15 本章要點 744
第Ⅴ部分 其 他 技 術
第25 章 Windows Communication Foundation 747
25.1 WCF 的含義748
25.2 WCF 概念748
25.2.1 WCF 通信協定 749
25.2.2 地址、端點和綁定 750
25.2.3 協定 751
25.2.4 訊息模式 752
25.2.5 行為 752
25.2.6 駐留 752
25.3 WCF 編程753
25.3.1 WCF 測試客戶端程式 759
25.3.2 定義WCF 服務協定 762
25.3.3 自駐留的WCF 服務 769
25.4 小結 776
25.5 練習 776
25.6 本章要點 777
第26 章 Windows Workflow Foundation 779
26.1 Hello World 779
26.2 工作流和活動781
26.2.1 If 活動 781
26.2.2 While 活動 782
26.2.3 Sequence 活動 782
26.3 實參和變數 783
26.4 定製活動 788
26.4.1 工作流擴展 790
26.4.2 活動的有效性驗證 795
26.4.3 活動設計器 796
26.5 小結 798
26.6 練習 798
26.7 本章要點 799
附錄A 習題答案 801
內容簡介
本書無與倫比的作者團隊與您分享多年積累的C#和.NET Framework使用經驗,首先簡明扼要地介紹這兩種技術,解釋其含義、相互關係以及使用原因,然後循序漸進地討論編程基礎知識、Web編程、桌面編程以及數據訪問技術。本書的講解詳明透徹,以通俗易懂的方式分步驟解析大量基礎性示例,為您提供了在實踐中鍛鍊運用新學知識的機會。
主要內容
介紹編程基礎知識,如變數、流程控制和面向對象編程
著重介紹初學者在編寫C#程式時最常用的工具:VisualStudio2012中的VisualC#2012開發環境
闡述調試和錯誤處理
詳細講解集合、比較和轉換,探討C#語言的新增功能
深入分析WPF以及其他可用於創建和部署
桌面應用程式的重要技術
探討WindowsStore應用程式
介紹ASP.NETWeb編程和Web應用程式的部署
分析檔案系統數據、XML和LINQ