東坡下載:內(nèi)容最豐富最安全的下載站!

幫助|文件類型庫(kù)|最新更新|下載分類|排行榜

桌面主題教育相關(guān)素材下載字體下載外語(yǔ)學(xué)習(xí)高考考研建筑圖集高考作文書法字體桌面壁紙CAD圖紙考研素材

首頁(yè)硬件驅(qū)動(dòng)硬件教程 → 精通C#(中文版) 完整免費(fèi)版【共1201頁(yè)】

精通C#(中文版)

精通C#(中文版)完整免費(fèi)版【共1201頁(yè)】

  • 大。26.0M
  • 語(yǔ)言:中文
  • 平臺(tái):WinAll
  • 更新:2015-06-12 11:1
  • 等級(jí):
  • 類型:書集教程
  • 網(wǎng)站:http://sfsensi.com
  • 授權(quán):免費(fèi)軟件
  • 廠商:
  • 產(chǎn)地:國(guó)產(chǎn)軟件
好用好玩 50%(0)
坑爹 坑爹 50%(0)
軟件介紹軟件截圖相關(guān)軟件軟件教程網(wǎng)友評(píng)論下載地址

相關(guān)推薦: 精通c# 第6版 pdf 精通c#

    精通C#是一本在業(yè)內(nèi)頗受好評(píng)的書,該書語(yǔ)言生動(dòng),內(nèi)容涵蓋面廣泛,收到不少讀者的好評(píng)和追捧,本節(jié)內(nèi)容小編為大家整理帶來(lái)的是該書的pdf格式完整中文版,共有1201頁(yè),如果你想要查閱這本精通C#(中文版)電子書的話,只需點(diǎn)擊本文相應(yīng)的下載地址進(jìn)行下載即可!該電子書完全免費(fèi),有需要的朋友可以放心下載查閱!

    精通C#(中文版)目錄

    第一部分 C#與.NET平臺(tái)

    第1章 .NET之道 2

    1.1  初識(shí).NET平臺(tái)  2

    1.2  .NET平臺(tái)構(gòu)造塊(CLR、CTS和CLS)簡(jiǎn)介  3

    1.2.1  基礎(chǔ)類庫(kù)的作用  3

    1.2.2  C#的優(yōu)點(diǎn)  4

    1.2.3  托管代碼與非托管代碼  5

    1.3  其他支持.NET的編程語(yǔ)言  5

    1.4  .NET程序集概覽  7

    1.4.1  CIL的作用  8

    1.4.2  .NET類型元數(shù)據(jù)的作用  10

    1.4.3  程序集清單的作用  11

    1.5  CTS  12

    1.5.1  CTS類類型  12

    1.5.2  CTS接口類型  12

    1.5.3  CTS結(jié)構(gòu)類型  13

    1.5.4  CTS枚舉類型  13

    1.5.5  CTS委托類型  13

    1.5.6  CTS類型成員  14

    1.5.7  內(nèi)建的CTS數(shù)據(jù)類型  14

    1.6  CLS  15

    1.7  CLR  16

    1.8  程序集/命名空間/類型的區(qū)別  17

    1.8.1  Microsoft根命名空間的作用  20

    1.8.2  以編程方式訪問命名空間  20

    1.8.3  引用外部程序集  21

    1.9  使用ildasm.exe探索程序集  22

    1.9.1  查看CIL代碼  23

    1.9.2  查看類型元數(shù)據(jù)  23

    1.9.3  查看程序集元數(shù)據(jù)(即清單)  24

    1.10  .NET的平臺(tái)無(wú)關(guān)性  24

    1.11  Windows 8應(yīng)用程序簡(jiǎn)介  25

    1.11.1  構(gòu)建Windows 8應(yīng)用程序  26

    1.11.2  .NET在Windows 8中的作用  27

    1.12  小結(jié)  28

    第2章 構(gòu)建C#應(yīng)用程序  29

    2.1  .NET Framework 4.5 SDK的作用  29

    2.2  用csc.exe構(gòu)建C#應(yīng)用程序  30

    2.2.1  指定輸入輸出目標(biāo)  31

    2.2.2  引用外部程序集  32

    2.2.3  引用多個(gè)外部程序集  33

    2.2.4  編譯多個(gè)源文件  33

    2.2.5  使用C#響應(yīng)文件  34

    2.3  使用Notepad++構(gòu)建.NET應(yīng)用程序  35

    2.4  使用SharpDevelop構(gòu)建.NET應(yīng)用程序  36

    2.5  使用Visual C# Express構(gòu)建.NET應(yīng)用程序  38

    2.6  使用Visual Studio構(gòu)建.NET應(yīng)用程序  39

    2.6.1  Visual Studio的獨(dú)特功能  39

    2.6.2  使用New Project對(duì)話框指向.NET Framework  40

    2.6.3  解決方案資源管理器  40

    2.6.4  Class View工具  42

    2.6.5  Object Browser工具  43

    2.6.6  集成對(duì)代碼重構(gòu)的支持  43

    2.6.7  代碼擴(kuò)展和圍繞技術(shù)  45

    2.6.8  可視化Class Designer  47

    2.6.9  集成的.NET Framework 4.5 SDK文檔系統(tǒng)  50

    2.7  小結(jié)  51

    第二部分 C#核心編程結(jié)構(gòu)

    第3章 C#核心編程結(jié)構(gòu)Ⅰ  54

    3.1  一個(gè)簡(jiǎn)單的C#程序  54

    3.1.1  Main()方法的其他形式  55

    3.1.2  指定應(yīng)用程序錯(cuò)誤代碼  56

    3.1.3  處理命令行參數(shù)  57

    3.1.4  使用Visual Studio指定命令行參數(shù)  59

    3.2  有趣的題外話:System.Environment類的其他成員  59

    3.3  System.Console類  61

    3.3.1  使用Console類進(jìn)行基本的輸入和輸出  61

    3.3.2  格式化控制臺(tái)輸出  62

    3.3.3  格式化數(shù)值數(shù)據(jù)  63

    3.3.4  在控制臺(tái)應(yīng)用程序外格式化數(shù)值數(shù)據(jù)  64

    3.4  系統(tǒng)數(shù)據(jù)類型和相應(yīng)的C#關(guān)鍵字  64

    3.4.1  變量聲明和初始化  65

    3.4.2  內(nèi)建數(shù)據(jù)類型與new操作符  67

    3.4.3  數(shù)據(jù)類型類的層次結(jié)構(gòu)  67

    3.4.4  數(shù)值數(shù)據(jù)類型的成員  69

    3.4.5  System.Boolean的成員  69

    3.4.6  System.Char的成員  69

    3.4.7  從字符串?dāng)?shù)據(jù)中解析數(shù)值  70

    3.4.8  System.DateTime和System.TimeSpan  70

    3.4.9  System.Numerics.dll程序集  71

    3.5  使用字符串?dāng)?shù)據(jù)  72

    3.5.1  基本的字符串操作  73

    3.5.2  字符串拼接  73

    3.5.3  轉(zhuǎn)義字符  74

    3.5.4  定義逐字字符串  75

    3.5.5  字符串和相等性  75

    3.5.6  字符串是不可變的  76

    3.5.7  System.Text.StringBuilder類型  77

    3.6  窄化和寬化數(shù)據(jù)類型轉(zhuǎn)換  78

    3.6.1  checked關(guān)鍵字  80

    3.6.2  設(shè)定項(xiàng)目級(jí)別的溢出檢測(cè)  81

    3.6.3  unchecked關(guān)鍵字  82

    3.7  隱式類型本地變量  82

    3.7.1  隱式類型變量的限制  84

    3.7.2  隱式類型數(shù)據(jù)是強(qiáng)類型數(shù)據(jù)  84

    3.7.3  隱式類型本地變量的用途  85

    3.8  C#迭代結(jié)構(gòu)  86

    3.8.1  for循環(huán)  86

    3.8.2  foreach循環(huán)  87

    3.8.3  while和do/while循環(huán)結(jié)構(gòu)  87

    3.9  條件結(jié)構(gòu)和關(guān)系/相等操作符  88

    3.9.1  if/else語(yǔ)句  88

    3.9.2  關(guān)系/相等操作符  88

    3.9.3  邏輯操作符  89

    3.9.4  switch語(yǔ)句  89

    3.10  小結(jié)  91

    第4章 C#核心編程結(jié)構(gòu)Ⅱ  92

    4.1  方法和參數(shù)修飾符  92

    4.1.1  默認(rèn)的參數(shù)傳遞行為  93

    4.1.2  out修飾符  94

    4.1.3  ref修飾符  95

    4.1.4  params修飾符  96

    4.1.5  定義可選參數(shù)  97

    4.1.6  使用命名參數(shù)調(diào)用方法  98

    4.1.7  成員重載  99

    4.2  C#數(shù)組  101

    4.2.1  C#數(shù)組初始化語(yǔ)法  102

    4.2.2  隱式類型本地?cái)?shù)組  103

    4.2.3  定義object數(shù)組  103

    4.2.4  使用多維數(shù)組  104

    4.2.5  數(shù)組作為參數(shù)(和返回值)  105

    4.2.6  System.Array基類  106

    4.3  枚舉類型  107

    4.3.1  控制枚舉的底層存儲(chǔ)  108

    4.3.2  聲明枚舉變量  109

    4.3.3  System.Enum類型  110

    4.3.4  動(dòng)態(tài)獲取枚舉的名稱/值對(duì)  110

    4.4  結(jié)構(gòu)類型  112

    4.5  值類型和引用類型  115

    4.5.1  值類型、引用類型和賦值操作符  116

    4.5.2  包含引用類型的值類型  117

    4.5.3  按值傳遞引用類型  119

    4.5.4  按引用傳遞引用類型  120

    4.5.5  值類型和引用類型:最后的細(xì)節(jié)  121

    4.6  C#可空類型  122

    4.6.1  使用可空類型  123

    4.6.2  ??操作符  124

    4.7  小結(jié)  124

    第三部分 C#面向?qū)ο缶幊?/p>

    第5章 封裝  126

    5.1  C#類類型  126

    5.2  構(gòu)造函數(shù)  129

    5.2.1  默認(rèn)構(gòu)造函數(shù)的作用  129

    5.2.2  定義自定義的構(gòu)造函數(shù)  130

    5.2.3  再談默認(rèn)構(gòu)造函數(shù)  131

    5.3  this關(guān)鍵字的作用  132

    5.3.1  使用this進(jìn)行串聯(lián)構(gòu)造函數(shù)調(diào)用  133

    5.3.2  觀察構(gòu)造函數(shù)流程  135

    5.3.3  再談可選參數(shù)  137

    5.4  static關(guān)鍵字  138

    5.4.1  定義靜態(tài)數(shù)據(jù)  138

    5.4.2  定義靜態(tài)方法  140

    5.4.3  定義靜態(tài)構(gòu)造函數(shù)  141

    5.4.4  定義靜態(tài)類  143

    5.5  定義OOP的支柱  144

    5.5.1  封裝的作用  144

    5.5.2  繼承的作用  144

    5.5.3  多態(tài)的作用  146

    5.6  C#訪問修飾符  147

    5.6.1  默認(rèn)的訪問修飾符  148

    5.6.2  訪問修飾符和嵌套類型  148

    5.7  第一個(gè)支柱:C#的封裝服務(wù)  149

    5.7.1  使用傳統(tǒng)的訪問方法和修改方法執(zhí)行封裝  149

    5.7.2  使用.NET屬性進(jìn)行封裝  151

    5.7.3  使用類的屬性  154

    5.7.4  只讀和只寫屬性  155

    5.7.5  靜態(tài)屬性  156

    5.8  自動(dòng)屬性  156

    5.8.1  與自動(dòng)屬性交互  158

    5.8.2  關(guān)于自動(dòng)屬性和默認(rèn)值  158

    5.9  對(duì)象初始化語(yǔ)法  160

    5.9.1  使用初始化語(yǔ)法調(diào)用自定義構(gòu)造函數(shù)  161

    5.9.2  初始化內(nèi)部類型  162

    5.10  常量數(shù)據(jù)  163

    5.10.1  只讀字段  164

    5.10.2  靜態(tài)只讀字段  165

    5.11  分部類型  165

    5.12  小結(jié)  167

    第6章 繼承和多態(tài)  168

    6.1  繼承的基本機(jī)制  168

    6.1.1  指定既有類的父類  169

    6.1.2  多個(gè)基類  170

    6.1.3  sealed關(guān)鍵字  171

    6.2  回顧Visual Studio類關(guān)系圖  172

    6.3  OOP的第二個(gè)支柱:繼承  173

    6.3.1  使用base關(guān)鍵字控制基類的創(chuàng)建  174

    6.3.2  家族的秘密:protected關(guān)鍵字  176

    6.3.3  增加密封類  177

    6.4  包含/委托編程  178

    6.5  OOP的第三個(gè)支柱:C#的多態(tài)支持  180

    6.5.1  virtual和override關(guān)鍵字  181

    6.5.2  使用Visual Studio IDE重寫虛方法  183

    6.5.3  密封虛成員  184

    6.5.4  抽象類  184

    6.5.5  構(gòu)建多態(tài)接口  186

    6.5.6  成員投影  189

    6.6  基類/派生類的轉(zhuǎn)換規(guī)則  191

    6.6.1  C#的as關(guān)鍵字  192

    6.6.2  C#的is關(guān)鍵字  193

    6.7  超級(jí)父類:System.Object  193

    6.7.1  重寫System.Object.ToString()  196

    6.7.2  重寫System.Object.Equals()  196

    6.7.3  重寫System.Object.GetHashCode()  197

    6.7.4  測(cè)試修改后的Person類  198

    6.7.5  System.Object的靜態(tài)成員  199

    6.8  小結(jié)  199

    第7章 結(jié)構(gòu)化異常處理  200

    7.1  錯(cuò)誤、bug與異! 200

    7.2  .NET異常處理的作用  201

    7.2.1  .NET異常處理的四要素  202

    7.2.2  System.Exception基類  202

    7.3  最簡(jiǎn)單的例子  203

    7.3.1  引發(fā)普通的異! 205

    7.3.2  捕獲異! 206

    7.4  配置異常的狀態(tài)  207

    7.4.1  TargetSite屬性  207

    7.4.2  StackTrace屬性  208

    7.4.3  HelpLink屬性  208

    7.4.4  Data屬性  209

    7.5  系統(tǒng)級(jí)異! 211

    7.6  應(yīng)用程序級(jí)異! 211

    7.6.1  構(gòu)建自定義異常,第一部分  212

    7.6.2  構(gòu)建自定義異常,第二部分  213

    7.6.3  構(gòu)建自定義異常,第三部分  214

    7.7  處理多個(gè)異! 215

    7.7.1  通用的catch語(yǔ)句  217

    7.7.2  再次引發(fā)異常  218

    7.7.3  內(nèi)部異! 218

    7.7.4  finally塊  219

    7.8  誰(shuí)在引發(fā)什么異! 220

    7.9  未處理異常的后果  220

    7.10  使用Visual Studio調(diào)試未處理的異! 221

    7.11  小結(jié)  222

    第8章 接口  223

    8.1  接口類型  223

    8.2  定義自定義接口  226

    8.3  實(shí)現(xiàn)接口  227

    8.4  在對(duì)象級(jí)別調(diào)用接口成員  229

    8.4.1  獲取接口引用:as關(guān)鍵字  230

    8.4.2  獲取接口引用:is關(guān)鍵字  230

    8.5  接口作為參數(shù)  231

    8.6  接口作為返回值  233

    8.7  接口類型數(shù)組  233

    8.8  使用Visual Studio實(shí)現(xiàn)接口  234

    8.9  顯式接口實(shí)現(xiàn)  235

    8.10  設(shè)計(jì)接口層次結(jié)構(gòu)  238

    8.11  構(gòu)建可枚舉類型(IEnumerable和IEnumerator)  241

    8.11.1  用yield關(guān)鍵字構(gòu)建迭代器方法  243

    8.11.2  構(gòu)建命名迭代器  244

    8.12  構(gòu)建可克隆的對(duì)象(ICloneable)  245

    8.13  構(gòu)建可比較的對(duì)象(IComparable)  249

    8.13.1  指定多個(gè)排序順序  252

    8.13.2  自定義屬性、自定義排序類型  253

    8.14  小結(jié)  253

    第四部分 高級(jí)C#編程結(jié)構(gòu)

    第9章 集合與泛型  256

    9.1  集合類的動(dòng)機(jī)  256

    9.1.1  System.Collections命名空間  257

    9.1.2  System.Collections.Specialized命名空間  259

    9.2  非泛型集合的問題  260

    9.2.1  性能問題  260

    9.2.2  類型安全問題  263

    9.2.3  初識(shí)泛型集合  265

    9.3  泛型類型參數(shù)的作用  266

    9.3.1  為泛型類/結(jié)構(gòu)指定類型參數(shù)  267

    9.3.2  為泛型成員指定類型參數(shù)  268

    9.3.3  為泛型接口指定類型參數(shù)  269

    9.4  System.Collections.Generic命名空間  270

    9.4.1  集合初始化語(yǔ)法  271

    9.4.2  使用List<T>類  272

    9.4.3  使用Stack<T>類  273

    9.4.4  使用Queue<T>類  274

    9.4.5  使用SortedSet<T>類  275

    9.5  System.Collections.ObjectModel命名空間  277

    9.6  創(chuàng)建自定義泛型方法  279

    9.7  創(chuàng)建自定義泛型結(jié)構(gòu)和類  282

    9.8  類型參數(shù)的約束  284

    9.8.1  使用where關(guān)鍵字的示例  284

    9.8.2  操作符約束的不足  285

    9.9  小結(jié)  286

    第10章 委托、事件和Lambda表達(dá)式  287

    10.1  .NET委托類型  287

    10.1.1  在C#中定義委托類型  288

    10.1.2  System.MulticastDelegate與System.Delegate基類  290

    10.2  最簡(jiǎn)單的委托示例  291

    10.3  使用委托發(fā)送對(duì)象狀態(tài)通知  293

    10.3.1  支持多路廣播  296

    10.3.2  從委托的調(diào)用列表中移除成員  297

    10.3.3  方法組轉(zhuǎn)換語(yǔ)法  298

    10.4  泛型委托  300

    10.5  C#事件  303

    10.5.1  event關(guān)鍵字  304

    10.5.2  揭開事件的神秘面紗  305

    10.5.3  監(jiān)聽傳入的事件  306

    10.5.4  使用Visual Studio簡(jiǎn)化事件注冊(cè)  307

    10.5.5  創(chuàng)建自定義的事件參數(shù)  308

    10.5.6  泛型EventHandler<T>委托  309

    10.6  C#匿名方法  310

    10.7  Lambda表達(dá)式  313

    10.7.1  剖析Lambda表達(dá)式  315

    10.7.2  使用多個(gè)語(yǔ)句處理參數(shù)  316

    10.7.3  含有多個(gè)(或零個(gè))參數(shù)的Lambda表達(dá)式  317

    10.7.4  使用Lambda表達(dá)式重新編寫CarEvents示例  318

    10.8  小結(jié)  319

    第11章 高級(jí)C#語(yǔ)言特性  320

    11.1  索引器方法  320

    11.1.1  使用字符串值索引對(duì)象  322

    11.1.2  重載索引器方法  323

    11.1.3  多維的索引器  323

    11.1.4  在接口類型上定義索引器  324

    11.2  操作符重載  325

    11.2.1  重載二元操作符  325

    11.2.2  +=與-=操作符  327

    11.2.3  重載一元操作符  328

    11.2.4  重載相等操作符  329

    11.2.5  重載比較操作符  329

    11.2.6  操作符重載的最后思考  330

    11.3  自定義類型轉(zhuǎn)換  331

    11.3.1  回顧:數(shù)值轉(zhuǎn)換  331

    11.3.2  回顧:相關(guān)的類類型間的轉(zhuǎn)換  331

    11.3.3  創(chuàng)建自定義轉(zhuǎn)換例程  332

    11.3.4  Square類型的其他顯式轉(zhuǎn)換  334

    11.3.5  定義隱式轉(zhuǎn)換例程  335

    11.4  擴(kuò)展方法  336

    11.4.1  定義擴(kuò)展方法  336

    11.4.2  在實(shí)例層次上調(diào)用擴(kuò)展方法  337

    11.4.3  導(dǎo)入擴(kuò)展方法  338

    11.4.4  擴(kuò)展方法的智能感知  339

    11.4.5  擴(kuò)展實(shí)現(xiàn)了指定接口的類型  339

    11.5  匿名類型  340

    11.5.1  定義匿名類型  341

    11.5.2  匿名類型的內(nèi)部表示方式  342

    11.5.3  方法ToString()和GetHashCode()的實(shí)現(xiàn)  343

    11.5.4  匿名類型的相等語(yǔ)義  344

    11.5.5  包含匿名類型的匿名類型  345

    11.6  指針類型  346

    11.6.1  unsafe關(guān)鍵字  347

    11.6.2  *和&操作符  348

    11.6.3  不安全(與安全)交換功能  349

    11.6.4  通過指針訪問字段  350

    11.6.5  stackalloc關(guān)鍵字  350

    11.6.6  使用fixed關(guān)鍵字固定類型  351

    11.6.7  sizeof關(guān)鍵字  352

    11.7  小結(jié)  352

    第12章 LINQ to Object  353

    12.1  LINQ特有的編程結(jié)構(gòu)  353

    12.1.1  隱式類型本地變量  354

    12.1.2  對(duì)象和集合初始化語(yǔ)法  354

    12.1.3  Lambda表達(dá)式  355

    12.1.4  擴(kuò)展方法  355

    12.1.5  匿名類型  356

    12.2  LINQ的作用  356

    12.2.1  LINQ表達(dá)式是強(qiáng)類型的  357

    12.2.2  核心LINQ程序集  357

    12.3  將LINQ查詢應(yīng)用于原始數(shù)組  358

    12.3.1  再一次,不使用LINQ  359

    12.3.2  反射LINQ結(jié)果集  360

    12.3.3  LINQ和隱式類型本地變量  361

    12.3.4  LINQ和擴(kuò)展方法  362

    12.3.5  延遲執(zhí)行的作用  363

    12.3.6  立即執(zhí)行的作用  364

    12.4  返回LINQ查詢的結(jié)果  365

    12.5  將LINQ查詢應(yīng)用到集合對(duì)象  367

    12.5.1  訪問包含的子對(duì)象  367

    12.5.2  將LINQ查詢應(yīng)用于非泛型集合  368

    12.5.3  使用OfType<T>()篩選數(shù)據(jù)  369

    12.6  C# LINQ查詢操作符  369

    12.6.1  基本的選擇語(yǔ)法  371

    12.6.2  獲取數(shù)據(jù)子集  371

    12.6.3  投影新數(shù)據(jù)類型  372

    12.6.4  使用Enumerable獲取總數(shù)  373

    12.6.5  反轉(zhuǎn)結(jié)果集  373

    12.6.6  對(duì)表達(dá)式進(jìn)行排序  374

    12.6.7  維恩圖工具  374

    12.6.8  移除重復(fù)  375

    12.6.9  LINQ聚合操作  376

    12.7  LINQ查詢語(yǔ)句的內(nèi)部表示  376

    12.7.1  用查詢操作符建立查詢表達(dá)式(復(fù)習(xí))  377

    12.7.2  使用Enumerable類型和Lambda表達(dá)式來(lái)建立查詢表達(dá)式  377

    12.7.3  使用Enumerable類型和匿名方法來(lái)建立查詢表達(dá)式  379

    12.7.4  用Enumerable類型和原始委托建立查詢表達(dá)式  379

    12.8  小結(jié)  380

    第13章 對(duì)象的生命周期  381

    13.1  類、對(duì)象和引用  381

    13.2  對(duì)象生命周期的基礎(chǔ)  382

    13.2.1  CIL的new指令  383

    13.2.2  將對(duì)象引用設(shè)置為空  384

    13.3  應(yīng)用程序根的作用  385

    13.4  對(duì)象的代  386

    13.5  .NET 1.0 至.NET 3.5的并發(fā)垃圾回收  387

    13.6  .NET 4.0及后續(xù)版本  387

    13.7  System.GC類型  388

    13.8  構(gòu)建可終結(jié)對(duì)象  391

    13.8.1  重寫System.Object.Finalize()  392

    13.8.2  終結(jié)過程的細(xì)節(jié)  393

    13.9  構(gòu)建可處置對(duì)象  394

    13.10  構(gòu)建可終結(jié)類型和可處置類型  397

    13.11  延遲對(duì)象實(shí)例化  400

    13.12  小結(jié)  403

    第五部分 用.NET程序集編程

    第14章 .NET程序集入門  406

    14.1  定義自定義命名空間  406

    14.1.1  使用完全限定名解決命名沖突  408

    14.1.2  使用別名解決命名沖突  409

    14.1.3  創(chuàng)建嵌套的命名空間  410

    14.1.4  Visual Studio 的默認(rèn)命名空間  411

    14.2  .NET程序集的作用  412

    14.2.1  程序集促進(jìn)代碼重用  412

    14.2.2  程序集確定類型邊界  412

    14.2.3  程序集是可版本化的單元  412

    14.2.4  程序集是自描述的  413

    14.2.5  程序集是可配置的  413

    14.3  .NET程序集的格式  413

    14.3.1  Windows文件首部  413

    14.3.2  CLR文件首部  414

    14.3.3  CIL代碼、類型元數(shù)據(jù)和程序集清單  415

    14.3.4  可選的程序集資源  415

    14.4  構(gòu)建和使用自定義類庫(kù)  416

    14.4.1  清單  418

    14.4.2  CIL  421

    14.4.3  類型元數(shù)據(jù)  421

    14.4.4  構(gòu)建C#客戶端應(yīng)用程序  422

    14.4.5  構(gòu)建Visual Basic客戶端應(yīng)用程序  424

    14.4.6  實(shí)現(xiàn)跨語(yǔ)言繼承  425

    14.5  私有程序集  425

    14.5.1  私有程序集的標(biāo)識(shí)  426

    14.5.2  探測(cè)過程  426

    14.5.3  配置私有程序集  427

    14.5.4  App.Config文件  428

    14.6  共享程序集  430

    14.6.1  全局程序集緩存  430

    14.6.2  強(qiáng)名稱  431

    14.6.3  在命令行生成強(qiáng)名稱  432

    14.6.4  使用Visual Studio為程序集賦予強(qiáng)名稱  434

    14.6.5  在GAC中安裝強(qiáng)名稱的程序集  436

    14.7  使用共享程序集  437

    14.8  配置共享程序集  439

    14.8.1  凍結(jié)當(dāng)前的共享程序集  439

    14.8.2  構(gòu)建共享程序集2.0.0.0版本  440

    14.8.3  動(dòng)態(tài)重定向到共享程序集的特定版本  441

    14.9  發(fā)行者策略程序集  443

    14.10  <codeBase>元素  444

    14.11  System.Configuration命名空間  446

    14.12  配置文件架構(gòu)文檔  447

    14.13  小結(jié)  448

    第15章 類型反射、晚期綁定和基于特性的編程  449

    15.1  類型元數(shù)據(jù)的必要性  449

    15.1.1  查看(部分)EngineState枚舉的元數(shù)據(jù)  450

    15.1.2  查看(部分)Car類型的元數(shù)據(jù)  451

    15.1.3  研究TypeRef  452

    15.1.4  記錄定義的程序集  452

    15.1.5  記錄引用的程序集  453

    15.1.6  記錄字符串字面量  453

    15.2  反射  454

    15.2.1  System.Type類  454

    15.2.2  使用System.Object.GetType()得到Type引用  455

    15.2.3  使用typeof()得到Type引用  455

    15.2.4  使用System.Type.GetType()得到Type引用  455

    15.3  構(gòu)建自定義的元數(shù)據(jù)查看器  456

    15.3.1  反射方法  456

    15.3.2  反射字段和屬性  457

    15.3.3  反射實(shí)現(xiàn)的接口  457

    15.3.4  顯示其他信息  458

    15.3.5  實(shí)現(xiàn)Main()  458

    15.3.6  反射泛型類型  460

    15.3.7  反射方法參數(shù)和返回值  460

    15.4  動(dòng)態(tài)加載程序集  461

    15.5  反射共享程序集  464

    15.6  晚期綁定  465

    15.6.1  System.Activator類  466

    15.6.2  調(diào)用沒有參數(shù)的方法  467

    15.6.3  調(diào)用有參數(shù)的方法  468

    15.7  .NET特性的作用  469

    15.7.1  特性的使用者  470

    15.7.2  在C#中使用特性  470

    15.7.3  C#特性簡(jiǎn)化符號(hào)  471

    15.7.4  為特性指定構(gòu)造參數(shù)  472

    15.7.5  Obsolete特性  472

    15.8  構(gòu)建自定義特性  473

    15.8.1  應(yīng)用自定義特性  473

    15.8.2  命名屬性語(yǔ)法  474

    15.8.3  限制特性使用  474

    15.9  程序集級(jí)別特性  475

    15.10  使用早期綁定反射特性  477

    15.11  使用晚期綁定反射特性  478

    15.12  反射、晚期綁定和自定義特性的使用背景  479

    15.13  構(gòu)建可擴(kuò)展的應(yīng)用程序  480

    15.13.1  構(gòu)建CommonSnappable-Types.dll  480

    15.13.2  構(gòu)建C#插件  481

    15.13.3  構(gòu)建Visual Basic插件  482

    15.13.4  構(gòu)建可擴(kuò)展的Windows Forms應(yīng)用程序  482

    15.14  小結(jié)  485

    第16章 動(dòng)態(tài)類型和動(dòng)態(tài)語(yǔ)言運(yùn)行時(shí)  486

    16.1  dynamic關(guān)鍵字的作用  486

    16.1.1  調(diào)用動(dòng)態(tài)聲明的數(shù)據(jù)的成員  488

    16.1.2  Microsoft.CSharp.dll程序集的作用  489

    16.1.3  dynamic關(guān)鍵字的作用域  490

    16.1.4  dynamic關(guān)鍵字的限制  491

    16.1.5  dynamic關(guān)鍵字的實(shí)際用途  491

    16.2  DLR的作用  492

    16.2.1  表達(dá)式樹的作用  492

    16.2.2  System.Dynamic命名空間的作用  493

    16.2.3  表達(dá)式樹的動(dòng)態(tài)運(yùn)行時(shí)查找  493

    16.3  使用動(dòng)態(tài)類型簡(jiǎn)化后期綁定調(diào)用  494

    16.4  使用動(dòng)態(tài)數(shù)據(jù)簡(jiǎn)化COM互操作  497

    16.4.1  主互操作程序集的作用  498

    16.4.2  嵌入互操作元數(shù)據(jù)  499

    16.4.3  普通COM互操作的難點(diǎn)  500

    16.5  使用C# 動(dòng)態(tài)數(shù)據(jù)進(jìn)行COM互操作  500

    16.6  不使用C# 動(dòng)態(tài)數(shù)據(jù)進(jìn)行COM互操作  504

    16.7  小結(jié)  505

    第17章 進(jìn)程、應(yīng)用程序域和對(duì)象上下文  506

    17.1  Windows進(jìn)程的作用  506

    17.2  .NET平臺(tái)下與進(jìn)程進(jìn)行交互  508

    17.2.1  列舉運(yùn)行中的進(jìn)程  510

    17.2.2  特定的進(jìn)程  511

    17.2.3  進(jìn)程的線程集合  511

    17.2.4  進(jìn)程中的模塊集合  513

    17.2.5  以編程方式啟動(dòng)或結(jié)束進(jìn)程  514

    17.2.6  使用ProcessStartInfo類控制進(jìn)程的啟動(dòng)  515

    17.3  .NET應(yīng)用程序域  516

    17.4  與默認(rèn)應(yīng)用程序域進(jìn)行交互  518

    17.4.1  枚舉加載的程序集  519

    17.4.2  接收程序集加載通知  520

    17.5  創(chuàng)建新的應(yīng)用程序域  521

    17.5.1  在自定義應(yīng)用程序域中加載程序集  522

    17.5.2  以編程方式卸載應(yīng)用程序域  523

    17.6  對(duì)象上下文邊界  525

    17.6.1  上下文靈活和上下文綁定類型  525

    17.6.2  定義上下文綁定對(duì)象  526

    17.6.3  研究對(duì)象的上下文  526

    17.7  進(jìn)程、應(yīng)用程序域和上下文小結(jié)  528

    17.8  小結(jié)  528

    第18章 CIL和動(dòng)態(tài)程序集的作用  529

    18.1  學(xué)習(xí)CIL語(yǔ)法的原因  529

    18.2  CIL指令、特性和操作碼  530

    18.2.1  CIL指令的作用  530

    18.2.2  CIL特性的作用  530

    18.2.3  CIL操作碼的作用  531

    18.2.4  區(qū)別CIL操作碼和CIL助記符  531

    18.3  入棧和出棧:CIL基于棧的本質(zhì)  532

    18.4  正反向工程  533

    18.4.1  CIL代碼標(biāo)簽的作用  536

    18.4.2  與CIL交互:修改*.il文件  536

    18.4.3  使用ilasm.exe編譯CIL代碼  537

    18.4.4  peverify.exe的作用  538

    18.5  CIL指令和特性  539

    18.5.1  在CIL中指定外部引用程序集  539

    18.5.2  在CIL中定義當(dāng)前程序集  539

    18.5.3  在CIL中定義命名空間  540

    18.5.4  在CIL中定義類類型  540

    18.5.5  在CIL中定義和實(shí)現(xiàn)接口  541

    18.5.6  在CIL中定義結(jié)構(gòu)  542

    18.5.7  在CIL中定義枚舉  542

    18.5.8  在CIL中定義泛型  543

    18.5.9  編譯CILTypes.il文件  543

    18.6  .NET基礎(chǔ)類庫(kù)、C#和CIL數(shù)據(jù)類型的映射  544

    18.7  在CIL中定義類型成員  544

    18.7.1  在CIL中定義數(shù)據(jù)字段  545

    18.7.2  在CIL中定義類型的構(gòu)造函數(shù)  545

    18.7.3  在CIL中定義屬性  546

    18.7.4  定義成員參數(shù)  546

    18.8  剖析CIL操作碼  547

    18.8.1  .maxstack指令  548

    18.8.2  在CIL中聲明本地變量  549

    18.8.3  在CIL中映射參數(shù)到本地變量  550

    18.8.4  this隱式引用  550

    18.8.5  在CIL中使用循環(huán)結(jié)構(gòu)  551

    18.9  使用CIL構(gòu)建.NET程序集  551

    18.9.1  構(gòu)建CILCars.dll  551

    18.9.2  構(gòu)建CILCarClient.exe  554

    18.10  動(dòng)態(tài)程序集  555

    18.10.1  System.Reflection.Emit命名空間  556

    18.10.2  System.Reflection.Emit.ILGenerator的作用  557

    18.10.3  產(chǎn)生動(dòng)態(tài)的程序集  557

    18.10.4  產(chǎn)生程序集和模塊集  559

    18.10.5  ModuleBuilder類型的作用  560

    18.10.6  產(chǎn)生HelloClass類型和字符串成員變量  561

    18.10.7  產(chǎn)生構(gòu)造函數(shù)  561

    18.10.8  產(chǎn)生SayHello()方法  562

    18.10.9  使用動(dòng)態(tài)產(chǎn)生的程序集  563

    18.11  小結(jié)  564

    第六部分 .NET基礎(chǔ)類庫(kù)

    第19章 多線程、并行和異步編程  566

    19.1  進(jìn)程、應(yīng)用程序域、上下文及線程之間的關(guān)系  566

    19.1.1  并發(fā)問題  567

    19.1.2  線程同步的作用  568

    19.2  .NET委托的簡(jiǎn)短回顧  568

    19.3  委托的異步性  570

    19.3.1  BeginInvoke()和EndInvoke()方法  570

    19.3.2  System.IAsyncResult接口  570

    19.4  異步調(diào)用方法  571

    19.4.1  同步調(diào)用線程  572

    19.4.2  AsyncCallback委托的作用  573

    19.4.3  AsyncResult類的作用  575

    19.4.4  傳遞和接收自定義狀態(tài)數(shù)據(jù)  575

    19.5  System.Threading命名空間  576

    19.6  System.Threading.Thread類  577

    19.6.1  獲得當(dāng)前執(zhí)行線程的統(tǒng)計(jì)信息  578

    19.6.2  Name屬性  579

    19.6.3  Priority屬性  579

    19.7  手工創(chuàng)建次線程  580

    19.7.1  使用ThreadStart委托  580

    19.7.2  使用ParameterizedThreadStart委托  582

    19.7.3  AutoResetEvent類  583

    19.7.4  前臺(tái)線程和后臺(tái)線程  584

    19.8  并發(fā)問題  585

    19.8.1  使用C#的lock關(guān)鍵字進(jìn)行同步  588

    19.8.2  使用System.Threading.Monitor類型進(jìn)行同步  589

    19.8.3  使用System.Threading.Interlocked類型進(jìn)行同步  590

    19.8.4  使用[Synchronization]特性進(jìn)行同步  591

    19.9  使用TimerCallback編程  592

    19.10  CLR線程池  593

    19.11  使用任務(wù)并行庫(kù)進(jìn)行并行編程  595

    19.11.1  任務(wù)并行庫(kù)API  595

    19.11.2  Parallel類的作用  596

    19.11.3  使用Parallel類的數(shù)據(jù)并行  596

    19.11.4  在次線程中訪問UI元素  598

    19.11.5  Task類  599

    19.11.6  處理取消請(qǐng)求  599

    19.11.7  使用并行類的任務(wù)并行  601

    19.12  并行LINQ查詢(PLINQ)  603

    19.12.1  使用PLINQ查詢  604

    19.12.2  取消PLINQ查詢  604

    19.13  .NET 4.5下的異步調(diào)用  605

    19.13.1  C# async和await關(guān)鍵字初探  606

    19.13.2  異步方法的命名約定  607

    19.13.3  返回void的異步方法  609

    19.13.4  具有多個(gè)await的異步方法  609

    19.13.5  用async/await改進(jìn)AddWithThreads示例  610

    19.14  小結(jié)  611

    第20章 文件輸入輸出和對(duì)象序列化  612

    20.1  研究System.IO命名空間  612

    20.2  Directory(Info)和File(Info)類型  613

    20.3  使用DirectoryInfo類型  614

    20.3.1  使用DirectoryInfo類型枚舉出文件  616

    20.3.2  使用DirectoryInfo類型創(chuàng)建子目錄  616

    20.4  使用Directory類型  617

    20.5  使用DriveInfo類類型  618

    20.6  使用FileInfo類  619

    20.6.1  FileInfo.Create()方法  620

    20.6.2  FileInfo.Open()方法  621

    20.6.3  FileInfo.OpenRead()和FileInfo.OpenWrite()方法  622

    20.6.4  FileInfo.OpenText()方法  622

    20.6.5  FileInfo.CreateText()和FileInfo.AppendText()方法  623

    20.7  使用File類型  623

    20.8  Stream抽象類  625

    20.9  使用StreamWriter和StreamReader類型  627

    20.9.1  寫文本文件  628

    20.9.2  讀文本文件  628

    20.9.3  直接創(chuàng)建StreamWriter/StreamReader類型  629

    20.10  使用StringWriter和StringReader類型  630

    20.11  使用BinaryWriter和BinaryReader  631

    20.12  以編程方式“觀察”文件  632

    20.13  對(duì)象序列化  634

    20.14  為序列化配置對(duì)象  637

    20.14.1  定義可序列化的類型  637

    20.14.2  公共字段、私有字段和公共屬性  638

    20.15  選擇序列化格式化程序  638

    20.15.1  IFormatter和IRemoting-Formatting接口  639

    20.15.2  在格式化程序中的類型保真  640

    20.16  使用BinaryFormatter序列化對(duì)象  641

    20.17  使用SoapFormatter序列化對(duì)象  642

    20.18  使用XmlSerializer序列化對(duì)象  643

    20.19  序列化對(duì)象集合  645

    20.20  自定義Soap/Binary序列化過程  647

    20.20.1  深入了解對(duì)象序列化  647

    20.20.2  使用ISerializable自定義序列化  648

    20.20.3  使用特性定制序列化  650

    20.21  小結(jié)  651

    第21章 ADO.NET之一:連接層  653

    21.1  ADO.NET的宏觀定義  653

    21.2  ADO.NET數(shù)據(jù)提供程序  655

    21.2.1  微軟提供的ADO.NET數(shù)據(jù)提供程序  656

    21.2.2  關(guān)于System.Data.Oracle-Client.dll  657

    21.2.3  選擇第三方的數(shù)據(jù)提供程序  657

    21.3  其他的ADO.NET命名空間  658

    21.4  System.Data命名空間的類型  658

    21.4.1  IDbConnection接口的作用  659

    21.4.2  IDbTransaction接口的作用  659

    21.4.3  IDbCommand接口的作用  660

    21.4.4  IDbDataParameter和IDataParameter接口的作用  660

    21.4.5  IDbDataAdapter和IDataAdapter接口的作用  661

    21.4.6  IDataReader和IDataRecord接口的作用  661

    21.5  使用接口的抽象數(shù)據(jù)提供程序  662

    21.6  創(chuàng)建AutoLot數(shù)據(jù)庫(kù)  665

    21.6.1  創(chuàng)建Inventory表  665

    21.6.2  為Inventory表添加測(cè)試記錄  667

    21.6.3  編寫GetPetName()存儲(chǔ)過程  668

    21.6.4  創(chuàng)建Customers和Orders表  669

    21.6.5  可視化創(chuàng)建表關(guān)系  671

    21.7  ADO.NET數(shù)據(jù)提供程序工廠模型  672

    21.7.1  完整的數(shù)據(jù)提供程序工廠的例子  673

    21.7.2  數(shù)據(jù)提供程序工廠模型的潛在缺陷  675

    21.7.3  <connectionStrings>元素  676

    21.8  ADO.NET的連接層  677

    21.8.1  使用連接對(duì)象  678

    21.8.2  使用ConnectionStringBuilder對(duì)象  679

    21.8.3  使用命令對(duì)象  680

    21.9  使用數(shù)據(jù)讀取器  681

    21.10  構(gòu)建可重用的數(shù)據(jù)訪問庫(kù)  683

    21.10.1  增加連接邏輯  684

    21.10.2  增加插入邏輯  685

    21.10.3  增加刪除邏輯  686

    21.10.4  增加更新邏輯  686

    21.10.5  增加選擇邏輯  687

    21.10.6  使用參數(shù)化的命令對(duì)象  688

    21.10.7  執(zhí)行存儲(chǔ)過程  690

    21.11  創(chuàng)建控制臺(tái)UI前端  691

    21.11.1  實(shí)現(xiàn)Main()方法  691

    21.11.2  實(shí)現(xiàn)ShowInstructions()方法  693

    21.11.3  實(shí)現(xiàn)ListInventory()方法  693

    21.11.4  實(shí)現(xiàn)DeleteCar()方法  694

    21.11.5  實(shí)現(xiàn)InsertNewCar()方法  694

    21.11.6  實(shí)現(xiàn)UpdateCarPetName()方法  695

    21.11.7  實(shí)現(xiàn)LookUpPetName()  696

    21.12  數(shù)據(jù)庫(kù)事務(wù)  697

    21.12.1  ADO.NET事務(wù)對(duì)象的主要成員  697

    21.12.2  為AutoLot數(shù)據(jù)庫(kù)添加CreditRisks表  698

    21.12.3  為InventoryDAL添加事物方法  699

    21.12.4  測(cè)試數(shù)據(jù)庫(kù)事務(wù)  700

    21.13  小結(jié)  701

    第22章 ADO.NET之二:斷開連接層  702

    22.1  ADO.NET斷開連接層  702

    22.2  DataSet的作用  703

    22.2.1  DataSet的主要屬性  704

    22.2.2  DataSet的主要方法  704

    22.2.3  構(gòu)建DataSet  705

    22.3  使用DataColumn  705

    22.3.1  構(gòu)建DataColumn  706

    22.3.2  啟用自增列  707

    22.3.3  把DataColumn對(duì)象加入DataTable  707

    22.4  使用DataRow  707

    22.4.1  RowState屬性  709

    22.4.2  DataRowVersion屬性  710

    22.5  使用DataTable  710

    22.5.1  將DataTable插入到DataSet中  711

    22.5.2  獲取DataSet中的數(shù)據(jù)  712

    22.5.3  使用DataTableReader對(duì)象處理DataTable  713

    22.5.4  序列化DataTable/DataSet對(duì)象為XML  714

    22.5.5  以二進(jìn)制格式序列化Data-Table/DataSet對(duì)象  715

    22.6  將DataTable對(duì)象綁定到用戶界面  716

    22.6.1  從泛型List<T>合成DataTable  717

    22.6.2  從DataTable中刪除行  719

    22.6.3  根據(jù)篩選條件選擇行  720

    22.6.4  在DataTable中更新行  722

    22.6.5  使用DataView類型  723

    22.7  使用數(shù)據(jù)適配器  724

    22.7.1  一個(gè)簡(jiǎn)單的數(shù)據(jù)適配器示例  725

    22.7.2  映射數(shù)據(jù)庫(kù)名稱為友好名稱  726

    22.8  向AutoLotDAL.dll添加斷開連接功能  727

    22.8.1  定義初始類類型  727

    22.8.2  使用SqlCommandBuilder來(lái)配置數(shù)據(jù)適配器  728

    22.8.3  實(shí)現(xiàn)GetAllInventory()  729

    22.8.4  實(shí)現(xiàn)UpdateInventory()  729

    22.8.5  設(shè)置版本號(hào)  729

    22.8.6  測(cè)試非連接的功能  730

    22.9  多表DataSet對(duì)象和數(shù)據(jù)關(guān)系  731

    22.9.1  建立數(shù)據(jù)適配器  732

    22.9.2  建立表間關(guān)系  733

    22.9.3  更新Database表  733

    22.9.4  在關(guān)聯(lián)表中切換  734

    22.10  Windows Forms數(shù)據(jù)庫(kù)設(shè)計(jì)器工具  736

    22.10.1  可視化設(shè)計(jì)DataGridView  736

    22.10.2  生成的App.config文件  740

    22.10.3  強(qiáng)類型的DataSet  740

    22.10.4  強(qiáng)類型的DataTable  741

    22.10.5  強(qiáng)類型的DataRow  742

    22.10.6  強(qiáng)類型的數(shù)據(jù)適配器  743

    22.10.7  完成Windows Forms應(yīng)用程序  744

    22.11  將強(qiáng)類型的數(shù)據(jù)庫(kù)代碼隔離到類庫(kù)中  744

    22.11.1  查看生成的代碼  746

    22.11.2  用生成的代碼選擇數(shù)據(jù)  747

    22.11.3  用生成的代碼插入數(shù)據(jù)  748

    22.11.4  用生成的代碼刪除數(shù)據(jù)  748

    22.11.5  用生成的代碼調(diào)用存儲(chǔ)過程  749

    22.12  LINQ to DataSet  750

    22.12.1  DataSet Extensions庫(kù)的作用  751

    22.12.2  獲取與LINQ兼容的DataTable  752

    22.12.3  DataRowExtensions.Field-<T>()擴(kuò)展方法的作用  753

    22.12.4  從LINQ查詢中生成新的DataTable  754

    22.13  小結(jié)  754

    第23章 ADO.NET之三:Entity Framework  756

    23.1  Entity Framework的作用  756

    23.1.1  實(shí)體的作用  758

    23.1.2  Entity Framework的基礎(chǔ)知識(shí)  760

    23.2  創(chuàng)建和分析EDM  764

    23.3  對(duì)概念模型進(jìn)行編程  774

    23.4  AutoLotDAL 4.0版,加入實(shí)體  779

    23.4.1  導(dǎo)航屬性的作用  780

    23.4.2  在LINQ to Entity查詢中使用導(dǎo)航屬性  781

    23.4.3  調(diào)用存儲(chǔ)過程  782

    23.5  將數(shù)據(jù)實(shí)體綁定到Windows Forms GUI  783

    23.6  展望.NET數(shù)據(jù)訪問API的未來(lái)  786

    23.7  小結(jié)  787

    第24章 LINQ to XML簡(jiǎn)介  788

    24.1  兩個(gè)XML API的故事  788

    24.1.1  更優(yōu)秀的DOM——LINQ to XML  789

    24.1.2  更優(yōu)秀的LINQ to XML——VB字面量語(yǔ)法  790

    24.2  System.Xml.Linq命名空間的成員  791

    24.2.1  LINQ to XML的軸方法  793

    24.2.2  奇妙的XName和XNamespace  794

    24.3  使用XElement和XDocument  795

    24.3.1  從數(shù)組和容器中生成文檔  797

    24.3.2  加載和解析XML內(nèi)容  798

    24.4  在內(nèi)存中操作XML文檔  798

    24.4.1  構(gòu)建LINQ to XML應(yīng)用程序的UI  799

    24.4.2  引入Inventory.xml文件  799

    24.4.3  定義LINQ to XML輔助類  800

    24.4.4  將UI組裝到輔助類  801

    24.5  小結(jié)  802

    第25章 WCF  803

    25.1  各種分布式計(jì)算API  803

    25.1.1  DCOM的作用  804

    25.1.2  COM+/企業(yè)服務(wù)的作用  804

    25.1.3  MSMQ的作用  805

    25.1.4  .NET Remoting的作用  805

    25.1.5  XML Web服務(wù)的作用  806

    25.2  WCF的作用  807

    25.2.1  WCF特性概覽  807

    25.2.2  SOA概覽  808

    25.2.3  WCF概要  809

    25.3  WCF核心程序集  809

    25.4  Visual Studio WCF項(xiàng)目模板  810

    25.5  WCF應(yīng)用程序的基本構(gòu)成  811

    25.6  WCF的ABC  812

    25.6.1  WCF契約  813

    25.6.2  WCF綁定  814

    25.6.3  WCF地址  816

    25.7  構(gòu)建WCF服務(wù)  816

    25.7.1  [ServiceContract]特性  818

    25.7.2  [OperationContract]特性  819

    25.7.3  作為操作契約的服務(wù)類型  819

    25.8  承載WCF服務(wù)  820

    25.8.1  在App.config文件中創(chuàng)建

    ABC  820

    25.8.2  針對(duì)ServiceHost類型進(jìn)行編程  821

    25.8.3  指定庫(kù)地址  821

    25.8.4  ServiceHost類型的功能  823

    25.8.5  <system.serviceModel>元素的細(xì)節(jié)  824

    25.8.6  啟用元數(shù)據(jù)交換  825

    25.9  構(gòu)建WCF客戶端應(yīng)用程序  827

    25.9.1  使用svcutil.exe生成代理代碼  827

    25.9.2  使用Visual Studio生成代理代碼  828

    25.9.3  配置基于TCP的綁定  830

    25.10  簡(jiǎn)化配置設(shè)置  831

    25.10.1  使用默認(rèn)終結(jié)點(diǎn)  831

    25.10.2  使用多重綁定公開單獨(dú)的WCF服務(wù)  832

    25.10.3  修改WCF綁定的設(shè)置  833

    25.10.4  使用默認(rèn)的MEX行為配置  835

    25.10.5  刷新客戶端代理和選擇綁定  836

    25.11  使用WCF服務(wù)庫(kù)項(xiàng)目模板  837

    25.11.1  構(gòu)建簡(jiǎn)單的Math服務(wù)  837

    25.11.2  使用WcfTestClient.exe測(cè)試WCF服務(wù)  838

    25.11.3  使用SvcConfigEditor.exe修改配置文件  839

    25.12  以Windows服務(wù)承載WCF服務(wù)  840

    25.12.1  在代碼中指定ABC  841

    25.12.2  啟用MEX  843

    25.12.3  創(chuàng)建Windows服務(wù)安裝程序  843

    25.12.4  安裝Windows服務(wù)  845

    25.13  從客戶端異步調(diào)用服務(wù)  845

    25.14  定義WCF數(shù)據(jù)契約  847

    25.14.1  使用Web相關(guān)的WCF服務(wù)項(xiàng)目模板  848

    25.14.2  實(shí)現(xiàn)服務(wù)契約  849

    25.14.3  *.svc文件的作用  851

    25.14.4  更新web.config文件  851

    25.14.5  測(cè)試服務(wù)  851

    25.15  小結(jié)  852

    第26章 Windows Workflow Foundation簡(jiǎn)介  853

    26.1  定義業(yè)務(wù)流程  853

    26.2  構(gòu)建簡(jiǎn)單的工作流  854

    26.3  Workflow運(yùn)行時(shí)  857

    26.3.1  使用WorkflowInvoker承載工作流  857

    26.3.2  使用WorkflowApplication承載工作流  860

    26.3.3  第一個(gè)工作流示例回顧  861

    26.4  檢查Workflow中的活動(dòng)  861

    26.4.1  控制流活動(dòng)  861

    26.4.2  流程圖活動(dòng)  862

    26.4.3  消息傳遞活動(dòng)  862

    26.4.4  狀態(tài)機(jī)活動(dòng)  863

    26.4.5  運(yùn)行時(shí)活動(dòng)與基元活動(dòng)  863

    26.4.6  事務(wù)活動(dòng)  863

    26.4.7  集合活動(dòng)和錯(cuò)誤處理活動(dòng)  864

    26.5  構(gòu)建流程圖工作流  864

    26.5.1  在流程圖中連接活動(dòng)  865

    26.5.2  使用InvokeMethod活動(dòng)  866

    26.5.3  定義工作流變量  867

    26.5.4  使用FlowDecision活動(dòng)  868

    26.5.5  使用TerminateWorkflow活動(dòng)  868

    26.5.6  構(gòu)建“true”條件  869

    26.5.7  使用ForEach<T>活動(dòng)  870

    26.5.8  完成應(yīng)用程序  872

    26.5.9  我們做了什么  873

    26.6  在專門的DLL中構(gòu)建Squence工作流  874

    26.6.1  定義初始化項(xiàng)目  874

    26.6.2  引入程序集和命名空間  876

    26.6.3  定義工作流參數(shù)  877

    26.6.4  定義工作流變量  877

    26.6.5  使用Assign活動(dòng)  878

    26.6.6  使用If和Switch活動(dòng)  879

    26.6.7  構(gòu)建自定義代碼活動(dòng)  882

    26.7  使用工作流庫(kù)  884

    26.8  小結(jié)  886

    第七部分 WPF

    第27章 WPF和XAML  888

    27.1  WPF背后的動(dòng)機(jī)  888

    27.1.1  統(tǒng)一多種不同的API  889

    27.1.2  通過XAML將關(guān)注點(diǎn)分離  889

    27.1.3  提供優(yōu)化的呈現(xiàn)模型  890

    27.1.4  簡(jiǎn)化復(fù)雜的UI編程  890

    27.2  各種形式的WPF應(yīng)用程序  891

    27.2.1  傳統(tǒng)的桌面應(yīng)用程序  891

    27.2.2  基于導(dǎo)航的WPF應(yīng)用程序  892

    27.2.3  XBAP應(yīng)用程序  893

    27.2.4  WPF/Silverlight關(guān)系  894

    27.3  WPF程序集  894

    27.3.1  Application類的作用  896

    27.3.2  Window類的作用  897

    27.4  創(chuàng)建不使用XAML的WPF應(yīng)用程序  900

    27.4.1  創(chuàng)建強(qiáng)類型的Window類  902

    27.4.2  創(chuàng)建簡(jiǎn)單的用戶界面  902

    27.4.3  與應(yīng)用程序級(jí)別的數(shù)據(jù)交互  904

    27.4.4  處理Window對(duì)象的關(guān)閉  905

    27.4.5  攔截鼠標(biāo)事件  906

    27.4.6  攔截鍵盤事件  907

    27.5  僅使用XAML構(gòu)建WPF應(yīng)用程序  908

    27.5.1  用XAML定義窗體對(duì)象  909

    27.5.2  用XAML定義應(yīng)用對(duì)象  910

    27.5.3  通過msbuild.exe處理XAML文件  911

    27.6  將標(biāo)記轉(zhuǎn)換為.NET程序集  913

    27.6.1  將窗口XAML標(biāo)記映射到C#代碼  913

    27.6.2  BAML的作用  914

    27.6.3  將應(yīng)用程序XAML標(biāo)記映射到C#代碼  915

    27.6.4  XAML到程序集的過程摘要  916

    27.7  WPF XAML語(yǔ)法  916

    27.7.1  Kaxaml  917

    27.7.2  XAML XML命名空間和XAML關(guān)鍵字  918

    27.7.3  控制類和成員變量的可見性  920

    27.7.4  XAML元素、XAML特性和類型轉(zhuǎn)換器  920

    27.7.5  XAML屬性元素語(yǔ)法  921

    27.7.6  XAML附加屬性  922

    27.7.7  XAML標(biāo)記擴(kuò)展  923

    27.8  使用代碼隱藏文件構(gòu)建WPF應(yīng)用程序  924

    27.8.1  為MainWindow類添加代碼文件  925

    27.8.2  為MyApp類添加代碼文件  925

    27.8.3  用msbuild.exe處理代碼文件  926

    27.9  使用Visual Studio構(gòu)建WPF應(yīng)用程序  927

    27.9.1  WPF項(xiàng)目模板  927

    27.9.2  工具箱和XAML設(shè)計(jì)器/編輯器  928

    27.9.3  使用Properties窗口設(shè)置屬性  929

    27.9.4  使用Properties窗口處理事件  930

    27.9.5  在XAML編輯器中處理事件  931

    27.9.6  Document Outline窗口  932

    27.9.7  查看自動(dòng)生成的代碼文件  933

    27.10  使用Visual Studio構(gòu)建自定義XAML編輯器  933

    27.10.1  設(shè)計(jì)窗口的GUI  934

    27.10.2  實(shí)現(xiàn)Loaded事件  935

    27.10.3  實(shí)現(xiàn)按鈕的Click事件  936

    27.10.4  實(shí)現(xiàn)Closed事件  937

    27.10.5  測(cè)試應(yīng)用程序  937

    27.10.6  探索WPF 文檔  938

    27.11  小結(jié)  939

    第28章 使用WPF控件編程  941

    28.1  WPF核心控件概述  941

    28.1.1  WPF Ink控件  942

    28.1.2  WPF Document控件  942

    28.1.3  WPF公共對(duì)話框  942

    28.1.4  文檔中的細(xì)節(jié)  943

    28.2  Visual Studio WPF設(shè)計(jì)器  944

    28.2.1  在Visual Studio中使用WPF控件  944

    28.2.2  使用Document Outline編輯器  945

    28.3  使用面板控制內(nèi)容布局  946

    28.3.1  在Canvas面板中放置內(nèi)容  948

    28.3.2  在WrapPanel面板中放置內(nèi)容  949

    28.3.3  在StackPanel面板中放置內(nèi)容  951

    28.3.4  在Grid面板中放置內(nèi)容  952

    28.3.5  在DockPanel面板中放置內(nèi)容  954

    28.3.6  啟用Panel類型的滾動(dòng)功能  955

    28.3.7  使用Visual Studio設(shè)計(jì)器配置Panel  956

    28.4  使用嵌套面板構(gòu)建窗口框架  959

    28.4.1  構(gòu)建菜單系統(tǒng)  960

    28.4.2  構(gòu)建工具條  962

    28.4.3  構(gòu)建狀態(tài)條  963

    28.4.4  完成UI設(shè)計(jì)  963

    28.4.5  實(shí)現(xiàn)MouseEnter/MouseLeave事件處理程序  964

    28.4.6  實(shí)現(xiàn)拼寫檢查邏輯  964

    28.5  WPF命令  965

    28.5.1  內(nèi)置的命令對(duì)象  965

    28.5.2  將命令連接到Command屬性  966

    28.5.3  將命令連接到任意行為  967

    28.5.4  使用Open和Save命令  968

    28.6  深入了解WPF API和控件  970

    28.7  構(gòu)建Ink API選項(xiàng)卡  972

    28.7.1  設(shè)計(jì)工具條  973

    28.7.2  RadioButton控件  975

    28.7.3  處理Ink API選項(xiàng)卡的事件  977

    28.7.4  InkCanvas控件  977

    28.7.5  ComboBox控件  980

    28.7.6  保存、加載和清除InkCanvas數(shù)據(jù)  981

    28.8  Documents API  982

    28.8.1  塊元素和內(nèi)聯(lián)元素  982

    28.8.2  文檔布局管理器  982

    28.9  構(gòu)建Documents選項(xiàng)卡  983

    28.9.1  使用代碼填充FlowDocument  984

    28.9.2  啟用批注和便簽  985

    28.9.3  保存和加載流文檔  986

    28.10  WPF數(shù)據(jù)綁定模型  987

    28.10.1  構(gòu)建Data Binding選項(xiàng)卡  988

    28.10.2  使用Visual Studio建立數(shù)據(jù)綁定  988

    28.10.3  DataContext屬性  990

    28.10.4  使用IValueConverter進(jìn)行數(shù)據(jù)轉(zhuǎn)換  991

    28.10.5  在代碼中建立數(shù)據(jù)綁定  992

    28.10.6  構(gòu)建DataGrid選項(xiàng)卡  992

    28.11  小結(jié)  994

    第29章 WPF圖形呈現(xiàn)服務(wù)  995

    29.1  理解WPF的圖形呈現(xiàn)服務(wù)  995

    29.2  使用形狀呈現(xiàn)圖形數(shù)據(jù)  996

    29.2.1  在畫布中添加矩形、橢圓形和線條  998

    29.2.2  在畫布中移除矩形、圓形和線條  1001

    29.2.3  折線和多邊形  1002

    29.2.4  路徑  1002

    29.3  WPF畫刷和畫筆  1005

    29.3.1  使用Visual Studio配置畫刷  1006

    29.3.2  在代碼中配置畫刷  1008

    29.3.3  配置畫筆  1009

    29.4  圖形變換  1009

    29.4.1  變換概覽  1010

    29.4.2  變換Canvas數(shù)據(jù)  1011

    29.5  使用Visual Studio變換編輯器  1012

    29.5.1  構(gòu)建初始布局  1012

    29.5.2  在設(shè)計(jì)時(shí)應(yīng)用變換  1014

    29.5.3  在代碼中變換畫布  1015

    29.6  使用繪圖和幾何圖形呈現(xiàn)圖形數(shù)據(jù)  1015

    29.6.1  使用幾何圖形構(gòu)建DrawingBrush  1017

    29.6.2  用DrawingBrush進(jìn)行繪畫  1017

    29.6.3  在DrawingImage中使用繪圖類型  1018

    29.7  Expression Design的作用  1019

    29.7.1  將示例設(shè)計(jì)文件導(dǎo)出為XAML  1019

    29.7.2  將圖像數(shù)據(jù)導(dǎo)入WPF對(duì)象  1021

    29.7.3  與熊共舞  1022

    29.8  使用可視化層呈現(xiàn)圖形數(shù)據(jù)  1022

    29.9  小結(jié)  1028

    第30章 WPF資源、動(dòng)畫和樣式  1029

    30.1  理解WPF資源系統(tǒng)  1029

    30.2  使用對(duì)象(邏輯)資源  1034

    30.2.1  Resources屬性的作用  1034

    30.2.2  定義窗口級(jí)別的資源  1035

    30.2.3  {StaticResource}標(biāo)記擴(kuò)展  1037

    30.2.4  {DynamicResource}標(biāo)記擴(kuò)展  1037

    30.2.5  應(yīng)用程序級(jí)別的資源  1038

    30.2.6  定義合并的資源字典  1039

    30.2.7  定義只含資源的程序集  1041

    30.3  理解WPF動(dòng)畫服務(wù)  1042

    30.3.1  動(dòng)畫類型的作用  1043

    30.3.2  To、From和By屬性  1043

    30.3.3  Timeline基類的作用  1044

    30.3.4  用C#代碼創(chuàng)建動(dòng)畫  1044

    30.3.5  控制動(dòng)畫的速度  1045

    30.3.6  動(dòng)畫的反轉(zhuǎn)和循環(huán)  1046

    30.4  用XAML創(chuàng)建動(dòng)畫  1047

    30.4.1  演示圖板的作用  1047

    30.4.2  事件觸發(fā)器的作用  1048

    30.4.3  使用不連續(xù)的關(guān)鍵幀創(chuàng)建動(dòng)畫  1048

    30.5  WPF樣式的作用  1049

    30.5.1  定義并使用樣式  1050

    30.5.2  重寫樣式設(shè)置  1050

    30.5.3  使用TargetType自動(dòng)應(yīng)用樣式  1051

    30.5.4  繼承已有的樣式  1052

    30.5.5  未命名樣式的作用  1052

    30.5.6  使用觸發(fā)器定義樣式  1053

    30.5.7  使用多個(gè)觸發(fā)器定義樣式  1053

    30.5.8  動(dòng)畫樣式  1054

    30.5.9  以編程方式設(shè)置樣式  1054

    30.6  小結(jié)  1056

    第31章 依賴屬性、路由事件和模板  1057

    31.1  依賴屬性的作用  1057

    31.1.1  已知的依賴屬性  1059

    31.1.2  CLR屬性包裝器的重要說明  1061

    31.2  構(gòu)建自定義依賴屬性  1061

    31.2.1  添加數(shù)據(jù)驗(yàn)證例程  1065

    31.2.2  響應(yīng)屬性的改變  1065

    31.3  路由事件  1066

    31.3.1  路由冒泡事件的作用  1067

    31.3.2  繼續(xù)或中止冒泡  1068

    31.3.3  路由隧道事件的作用  1068

    31.4  邏輯樹、可視樹和默認(rèn)模板  1070

    31.4.1  以編程方式查看邏輯樹  1070

    31.4.2  以編程方式查看可視樹  1072

    31.4.3  以編程方式查看控件的默認(rèn)模板  1073

    31.5  使用觸發(fā)器框架構(gòu)建自定義控件模板  1075

    31.5.1  模板資源  1076

    31.5.2  使用觸發(fā)器添加可視提示  1078

    31.5.3  {TemplateBinding}標(biāo)記擴(kuò)展的作用  1079

    31.5.4  ContentPresenter的作用  1080

    31.5.5  融合模板和樣式  1081

    31.6  小結(jié)  1082

    第八部分 ASP.NET Web Form

    第32章  ASP.NET Web Form   1084

    32.1  HTTP的作用  1084

    32.1.1  HTTP請(qǐng)求/響應(yīng)循環(huán)  1084

    32.1.2  HTTP是無(wú)狀態(tài)協(xié)議  1085

    32.2  Web應(yīng)用程序和Web服務(wù)器  1085

    32.2.1  IIS虛擬目錄的作用  1085

    32.2.2  ASP.NET Development Web Server  1086

    32.3  HTML的作用  1087

    32.3.1  HTML文檔結(jié)構(gòu)  1087

    32.3.2  HTML表單的作用  1088

    32.3.3  Visual Studio HTML設(shè)計(jì)器工具  1088

    32.3.4  構(gòu)建HTML表單  1090

    32.4  客戶端腳本的作用  1091

    32.5  回發(fā)到Web服務(wù)器  1093

    32.6  ASP.NET API概覽  1094

    32.6.1  ASP.NET 2.0及其后續(xù)版本的主要特性  1095

    32.6.2  ASP.NET 3.5(和.NET 3.5 SP1)的主要特性  1096

    32.6.3  ASP.NET 4.0和4.5的主要特性  1096

    32.7  構(gòu)建單個(gè)文件的ASP.NET網(wǎng)頁(yè)  1097

    32.7.1  引用AutoLotDAL.dll  1098

    32.7.2  設(shè)計(jì)UI  1098

    32.7.3  添加數(shù)據(jù)訪問邏輯  1099

    32.7.4  ASP.NET指令的作用  1101

    32.7.5  腳本塊  1102

    32.7.6  ASP.NET控件聲明  1103

    32.8  使用代碼文件構(gòu)建ASP.NET Web頁(yè)面  1104

    32.8.1  引用AutoLotDAL.dll程序集  1106

    32.8.2  更新代碼文件  1107

    32.8.3  調(diào)試并跟蹤ASP.NET頁(yè)面  1107

    32.9  ASP.NET Web Site和ASP.NET Web Application  1108

    32.10  ASP.NET網(wǎng)站目錄結(jié)構(gòu)  1110

    32.10.1  引用程序集  1110

    32.10.2  App_Code文件夾的作用  1111

    32.11  頁(yè)面類型的繼承鏈  1111

    32.12  與傳入的HTTP請(qǐng)求交互  1113

    32.12.1  獲得瀏覽器統(tǒng)計(jì)數(shù)據(jù)  1113

    32.12.2  訪問傳入的表單數(shù)據(jù)  1114

    32.12.3  IsPostBack屬性  1115

    32.13  與輸出HTTP響應(yīng)交互  1115

    32.13.1  提交HTML內(nèi)容  1116

    32.13.2  重定向用戶  1116

    32.14  ASP.NET網(wǎng)頁(yè)的生命周期  1117

    32.14.1  AutoEventWireUp特性的作用  1118

    32.14.2  Error事件  1118

    32.15  web.config文件的作用  1120

    32.16  小結(jié)  1121

    第33章  ASP.NET Web控件、母版頁(yè)和主題  1122

    33.1  Web控件的本質(zhì)  1122

    33.1.1  服務(wù)器端事件處理  1123

    33.1.2  AutoPostBack屬性  1123

    33.2  Control和WebControl基類  1124

    33.2.1  枚舉所包含的控件  1125

    33.2.2  動(dòng)態(tài)添加和刪除控件  1127

    33.2.3  與動(dòng)態(tài)創(chuàng)建的控件交互  1128

    33.2.4  WebControl基類的功能  1128

    33.3  ASP.NET Web控件的類別  1129

    33.3.1  關(guān)于System.Web.UI.HtmlControls的簡(jiǎn)短說明  1131

    33.3.2  Web控件的文檔  1132

    33.4  構(gòu)建ASP.NET汽車網(wǎng)站  1132

    33.4.1  使用ASP.NET母版頁(yè)工作  1133

    33.4.2  定義默認(rèn)的內(nèi)容頁(yè)面  1138

    33.4.3  設(shè)計(jì)Inventory內(nèi)容頁(yè)面  1140

    33.4.4  設(shè)計(jì)Build-a-Car內(nèi)容頁(yè)面  1143

    33.5  驗(yàn)證控件的作用  1146

    33.5.1  開啟客戶端JavaScript驗(yàn)證支持  1147

    33.5.2  RequiredFieldValidator  1148

    33.5.3  RegularExpressionValidator  1148

    33.5.4  RangeValidator  1148

    33.5.5  CompareValidator  1149

    33.5.6  創(chuàng)建ValidationSummary  1150

    33.5.7  定義驗(yàn)證分組  1151

    33.6  使用主題  1152

    33.6.1  *.skin文件  1153

    33.6.2  應(yīng)用網(wǎng)站級(jí)別的主題  1155

    33.6.3  在頁(yè)面級(jí)別應(yīng)用主題  1155

    33.6.4  SkinID屬性  1155

    33.6.5  以編程方式分配主題  1156

    33.7  小結(jié)  1157

    第34章 ASP.NET狀態(tài)管理技術(shù)  1158

    34.1  狀態(tài)問題  1158

    34.2  ASP.NET狀態(tài)管理技術(shù)  1160

    34.3  ASP.NET視圖狀態(tài)的作用  1160

    34.3.1  演示視圖狀態(tài)  1161

    34.3.2  添加自定義視圖狀態(tài)數(shù)據(jù)  1162

    34.4  Global.asax文件的作用  1163

    34.4.1  全局最后異常事件處理程序  1164

    34.4.2  HttpApplication基類  1165

    34.5  應(yīng)用程序狀態(tài)與會(huì)話狀態(tài)的差別  1165

    34.5.1  維護(hù)應(yīng)用程序級(jí)的狀態(tài)數(shù)據(jù)  1166

    34.5.2  修改應(yīng)用程序數(shù)據(jù)  1168

    34.5.3  處理Web應(yīng)用程序的關(guān)閉  1169

    34.6  使用應(yīng)用程序緩存  1169

    34.6.1  使用數(shù)據(jù)緩存  1170

    34.6.2  修改*.aspx文件  1172

    34.7  維護(hù)會(huì)話數(shù)據(jù)  1174

    34.8  cookie  1177

    34.8.1  創(chuàng)建cookie  1177

    34.8.2  讀取傳入的cookie數(shù)據(jù)  1178

    34.9  <sessionState>元素的作用  1179

    34.9.1  在ASP.NET會(huì)話狀態(tài)服務(wù)器中保存會(huì)話數(shù)據(jù)  1179

    34.9.2  把會(huì)話數(shù)據(jù)保存在專門的數(shù)據(jù)庫(kù)中  1180

    34.10  ASP.NET用戶配置API  1181

    34.10.1  ASPNETDB.mdf數(shù)據(jù)庫(kù)  1181

    34.10.2  在web.config中定義用戶配置  1182

    34.10.3  以編程方式訪問用戶配置數(shù)據(jù)  1183

    34.10.4  分組用戶配置數(shù)據(jù)并且持久化自定義對(duì)象  1185

    34.11  小結(jié)  1186

    索引  1187

    精通C#(中文版)內(nèi)容簡(jiǎn)介

    本書是C# 領(lǐng)域久負(fù)盛名的經(jīng)典著作,深入全面地講解了C# 編程語(yǔ)言和.NET 平臺(tái)的核心內(nèi)容,并結(jié)合大量示例剖析相關(guān)概念。全書分為八部分:C# 和.NET 平臺(tái)、C# 核心編程結(jié)構(gòu)、C# 面向?qū)ο缶幊、高?jí)C# 編程結(jié)構(gòu)、用.NET 程序集編程、.NET 基礎(chǔ)類庫(kù)、WPF 和ASP.NET Web Forms。第6 版是對(duì)第5 版的進(jìn)一步更新和完善,內(nèi)容涵蓋了最先進(jìn)的.NET 編程技術(shù)和技巧,并準(zhǔn)確呈現(xiàn)出C# 編程語(yǔ)言的最新變化和.NET 4.5 Framework 的新特性。

    本書由微軟C# MVP Andrew Troelsen 編寫,第6 版專門針對(duì)C# 5.0 和.NET 4.5 進(jìn)行了細(xì)致入微的修訂,是各層次.NET 開發(fā)人員的必讀之作。

    精通C#(中文版)內(nèi)容截圖

    PC官方
    安卓官方手機(jī)版
    IOS官方手機(jī)版

    精通C#(中文版)截圖

    下載地址

    精通C#(中文版) 完整免費(fèi)版【共1201頁(yè)】

    熱門評(píng)論
    最新評(píng)論
    發(fā)表評(píng)論 查看所有評(píng)論(0)
    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)

    編輯推薦

    本類軟件排行

    報(bào)錯(cuò)

    請(qǐng)簡(jiǎn)要描述您遇到的錯(cuò)誤,我們將盡快予以修正。

    轉(zhuǎn)帖到論壇
    輪壇轉(zhuǎn)帖HTML方式

    輪壇轉(zhuǎn)帖UBB方式