人民幣定價:69 元
定價
:NT$ 414 元優惠價
:
87 折 360 元
絕版無法訂購
商品簡介
作者簡介
目次
商品簡介
《C#開發之道》是一本集編程感悟、技巧、陷阱、謬誤、算法和方案為一體的編程書籍,旨在引導讀者如何學習編程,幫助讀者豐富編程經驗。全書分為6篇,共計17章,全面介紹了學習和應用C#進行程序開發的各種陷阱與謬誤、技術細節與經驗技巧、常用的算法及解決方案。其涉及的技術主要包括面向對象的三要素(封裝、繼承、多態)、特性(Attribute)、泛型、委托和事件、異常處理、序列化和反序列化、動態操作程序集、ADO.NET對象操作數據庫、Lambda表達式、LINQ操作對象、LINQ操作數據集等C#核心技術,另外《C#開發之道》還介紹了線程異步調用、多線程同步、網絡通信、GDI+繪制圖形、自定義WindowsForm控件等高級應用技術。
《C#開發之道》附帶有配套DVD光盤,光盤中提供了書中全部實例和項目的源代碼,這些源代碼都是經過作者精心調試通過的,保證能夠在WindowsXP、Windows2003及Windows7操作系統下編譯和運行。
《C#開發之道》非常適合大中專院校在校生和畢業生、求職者、編程愛好者學習,同時也可以作為想要學習編程的初級人員的指導用書。
《C#開發之道》附帶有配套DVD光盤,光盤中提供了書中全部實例和項目的源代碼,這些源代碼都是經過作者精心調試通過的,保證能夠在WindowsXP、Windows2003及Windows7操作系統下編譯和運行。
《C#開發之道》非常適合大中專院校在校生和畢業生、求職者、編程愛好者學習,同時也可以作為想要學習編程的初級人員的指導用書。
作者簡介
趙會東,高級軟件工程師,網名東方,有過5年以上的大型集團信息管理系統項目研發經驗,3年以上的項目管理經驗,擅長系統分析、系統構架及oracle數據庫,熟悉C#、PB、Java等開發語言,對c#編程思想有較為深入的理論基礎與實戰經驗,另外,對于數據挖掘和數據分析有豐富的實戰經驗,曾帶領項目組出色完成北方供熱行業ERP的解決方案。
王小科,資深軟件開發工程師,5年以上的軟件開發經驗,擅長基于.NET平臺的Windows應用程序開發,對于Windows應用程序架構、面向對象程序設計和設計模式等有很深的研究。曾主持開發ERP系統、企業人事管理系統、365城寶網及Web2.0電子商務網站等多個大型項目的開發工作。
王軍,畢業于吉林大學,程序員,長期從事企業信息化系統分析,設計和開發,對C#開發有較深入的研究。
王小科,資深軟件開發工程師,5年以上的軟件開發經驗,擅長基于.NET平臺的Windows應用程序開發,對于Windows應用程序架構、面向對象程序設計和設計模式等有很深的研究。曾主持開發ERP系統、企業人事管理系統、365城寶網及Web2.0電子商務網站等多個大型項目的開發工作。
王軍,畢業于吉林大學,程序員,長期從事企業信息化系統分析,設計和開發,對C#開發有較深入的研究。
目次
第1篇 編程經驗與感悟——站在前人臂膀上前行1
第1章 步入編程殿堂2
感悟01謹慎選擇——如何選擇編程語言3
感悟02重視基礎——學習編程要打好基本功4
感悟03規范代碼——養成良好的編碼規范4
感悟04內外兼修——要重視實踐練習5
感悟05持之以恒——堅持比激情更重要5
感悟06培養興趣——感悟編程的樂趣與成就感6
第2章 提高編程技能7
感悟07自我總結——善于總結編程經驗8
感悟08活學活用——思維方式要靈活8
感悟09相互交流——多向他人學習9
感悟10知識的海洋——善于利用豐富網絡資源10
感悟11堅持學習——學習與培訓的必要性10
感悟12品味編程——逐步培養個人的編程思想11
第3章 暢談編程12
感悟13重視細節——編程細節經驗談13
感悟14數據庫結構——數據庫設計經驗談13
感悟15實踐出真知——項目開發經驗談15
感悟16價值體現——信息技術改變我們的生活17
感悟17展望未來——展望中國IT行業的未來18
第2篇 陷阱與謬誤——汲取前人的教訓19
第4章 C#開發人員不可忽視的30個技術陷阱20
陷阱01漏洞百出——使用for刪除集合中元素時的陷阱21
陷阱02無法逃生——使用循環語句不慎產生死循環23
陷阱03并非尋常——在程序中暴露常量時產生的陷阱24
陷阱04變幻莫測——拆箱存在的隱患26
陷阱05危機四伏——相等運算符重載造成的陷阱28
陷阱06事與愿違——結構初始化產生的陷阱30
陷阱07防不勝防——params關鍵字載入空值時的陷阱31
陷阱08無風起浪——初始化靜態成員時產生的陷阱33
陷阱09誤入歧途——傳遞派生類產生的陷阱35
陷阱10隱患重重——數據類型轉換時可能存在的隱患37
陷阱11三思而行——構造方法中調用虛方法的陷阱39
陷阱12表里不一——保存空值到數據表日期字段存在的陷阱41
陷阱13三思而行——讀取數據庫中空字段值時的陷阱44
陷阱14糟糕透頂——使用null對數據庫的空值進行比較時的陷阱45
陷阱15防不勝防——遍歷ArrayList數組時可能存在陷阱47
陷阱16不知其二——以DataReader對象作為方法返回值的陷阱49
陷阱17迷霧重重——使用窗體的Controls屬性遍歷窗體控件時產生的陷阱51
陷阱18不容侵犯——獲取ComboBox的SelectedValue屬性時存在的陷阱53
陷阱19意想不到——SQLServer數據庫中DateTime類型的溢出陷阱56
陷阱20三思而行——用DataReader讀取數據時產生的陷阱58
陷阱21不知其二——獲取DataTable類型數據源產生的陷阱60
陷阱22空穴來風——當ExecuteScalar返回值為空時的陷阱61
陷阱23拒之門外——在DataGridView中插入行時的陷阱64
陷阱24波瀾起伏——清除DataGridView中數據時產生的陷阱65
陷阱25埋下禍患——在DataGridView中綁定自增列產生的陷阱68
陷阱26三思而行——使用值類型進行線程同步71
陷阱27危機四伏——引用類型對象自身進行同步的陷阱73
陷阱28三思而行——使用LINQ的First方法74
陷阱29自相矛盾——因讀/寫文件時編碼格式不一致而產生的陷阱76
陷阱30自相矛盾——讀/寫二進制文件的陷阱77
第5章 C#開發人員意識中的20個常見謬誤80
謬誤01誤入歧途——所有的異常都要使用trycatch語句捕獲81
謬誤02不知其二——事件和委托的差別很大82
謬誤03誤入歧途——C#中的string和String是不同類型82
謬誤04誤入歧途——.NET中的應用程序域和操作系統中的進程完全相同83
謬誤05誤入歧途——C#中不能定義一個全局可見的變量83
謬誤06不知其二——C#和SQLServer中“空”是一回事84
謬誤07不知其二——C#的結構與C++的結構完全一樣84
謬誤08不知其二——方法中只有引用類型的參數才能實現引用傳遞85
謬誤09不知其二——字符串是值類型86
謬誤10不知其二——C#中的數組類型和C++的數組沒有區別87
謬誤11不知其二——泛型在不被指定的情況下是不確定的類型87
謬誤12不知其二——Object類型比較方法上的一些誤解89
謬誤13不知其二——.NET中的線程等價于Win32線程90
謬誤14一字之差——重載方法就是重寫方法91
謬誤15必由之路——在try語句中使用return、finally語句得不到執行92
謬誤16相差懸殊——結構是一種輕型或小型的類93
謬誤17惡意猜測——多個線程同時調用靜態方法,其運行結果可能不準確94
謬誤18相差甚遠——String與StringBuilder基本上相同95
謬誤19混淆是非——結構不可以實現接口96
謬誤20不知其二——Environment.CurrentDirectory始終為應用程序文件的目錄97
第3篇 技術細節——修煉編程內功心法99
第6章 技術細節-C#語言基礎100
細節01打包變量——裝箱和拆箱101
細節02虛虛實實——理解值類型和引用類型102
細節03相互適應——隱式轉換和顯式轉換106
細節04齊步向前——理解移位運算符108
細節05等級制度——理解運算的次序110
細節06暢通無阻——理解參數的類型111
細節07同名同姓——重載方法115
細節08取而代之——虛方法與重寫方法116
細節09紙上談兵——接口的概念及聲明119
細節10血戰沙場——接口的兩種實現方式120
細節11不溫不火——抽象類與抽象方法124
細節12格格不入——什么是封裝126
細節13子承父業——什么是繼承128
細節14本是同根——什么是多態性130
細節15各司其職——作用域的概念133
細節16武林秘籍——使用索引器134
細節17父子情深——base和this關鍵字135
細節18靜觀其變——理解靜態修飾符137
細節19追本溯源——C#語言中的Object類139
細節20空穴來風——可空類型140
細節21分身之術——分部類141
細節22無名英雄——匿名方法143
細節23自言自語——.NET框架提供的屬性(Attribute)145
細節24自我介紹——自定義屬性類(Attribute)147
細節25武林秘籍——應用泛型148
細節26武林秘籍——包含/委托151
細節27定制循環——實現迭代器153
細節28對象克隆——C#中的深復制和淺復制155
細節29冒名頂替——重載一元、二元運算符156
細節30論資排輩——對象也能排序158
細節31異常處理——根據異常類型編寫專有catch語句160
細節32異常處理——自定義異常輸出信息162
細節33全權代理——委托的定義及應用163
細節34秘密事件——自定義事件164
細節35武林秘籍——對象的序列化與反序列化166
細節36武林秘籍——使用XML方式進行序列化和反序列化168
細節37自我主張——使用特性自定義XML序列化170
細節38自由進出——在C#中動態加載和卸載程序集171
細節39萬能類型——使用var創建隱型局部變量172
細節40委托殺手——Lambda表達式174
第7章 技術細節-Windows開發技術175
細節01一統天下——創建MDI窗體框架176
細節02迥然不同——模態對話框和非模態對話框179
細節03遺傳基因——WindwsForm窗體繼承181
細節04隨心所欲——DateTimePicker控件自定義顯示格式183
細節05異步助手——BackgroundWorker組件執行異步操作185
細節06毫無私情——使用ErrorProvider控件驗證文本框的輸入187
細節07最佳助手——使用HelpProvider控件調用幫助文件189
細節08強強聯合——制作復合控件190
細節09青出于藍——制作擴展控件192
細節10唯我獨尊——制作自定義控件193
第8章 技術細節-文件、數據流及圖形196
細節01靜觀其變——通過File類操作文件197
細節02異曲同工——通過Fileinfo類操作文件200
細節03靜觀其變——通過Directory類操作文件夾203
細節04異曲同工——通過Directoryinfo類操作文件夾205
細節05天下無敵——使用FileStream流讀/寫數據210
細節06略勝一籌——使用BufferedStream流讀/寫數據212
細節07專心致志——使用StreamReader和StreamWriter讀/寫數據214
細節08異曲同工——通過重寫窗體的OnPaint方法繪圖217
細節09完美無缺——使用雙緩沖技術繪圖218
細節10精打細算——繪制剪切區域220
第9章 技術細節-線程和網絡通信222
細節01異曲同工——使用異步委托執行線程223
細節02爭先恐后——多線程產生競態條件的原理225
細節03武林秘籍——使用lock關鍵字實現線程同步227
細節04武林秘籍——使用Monitor類和Mutex類實現線程同步229
細節05互不讓步——多線程產生死鎖的原理232
細節06包羅萬象——應用CLR的線程池234
細節07網絡基石——通過Dns類、IPAddress類、IPEndPoint類獲取網絡信息235
細節08精兵強將——使用Socket類、TcpClient類、TcpListener類實現網絡通信239
第10章 技術細節-數據庫、XML及LINQ245
細節01橋梁專家——高效地使用數據庫連接的兩種方式246
細節02永不分離——數據源的連接式訪問模式248
細節03一招制敵——ADO.NET影響一行的數據操作250
細節04一箭雙雕——ADO.NET影響多行的數據操作254
細節05武林秘籍——用XmlReader讀取XML257
細節06武林秘籍——用XmlWriter寫入XML258
細節07大浪淘沙——對象的篩選操作260
細節08小孔成像——對象的投影操作261
細節09論資排輩——對象的排序操作262
細節10精打細算——對象的聚合操作265
細節11重新組合——對象的集合操作269
細節12指點江山——對象的元素操作272
細節13首尾相連——對象的連接操作273
細節14單槍匹馬——查詢DataSet中的單個表275
細節15多多益善——查詢DataSet中的多個表277
細節16小孔成像——對DataSet進行投影操作278
細節17大浪淘沙——對DataSet進行篩選操作279
細節18論資排輩——對DataSet進行排序操作280
細節19精打細算——對DataSet進行聚合操作282
細節20指點江山——對DataSet進行元素操作282
細節21首尾相連——對DataSet進行連接操作283
細節22涇渭分明——對DataSet進行數據分區操作285
第4篇 編程技巧——程序員的神兵利器287
第11章 開發技巧-C#語言基礎288
技巧01武林秘籍——巧用異或運算符實現加密功能289
技巧02巧妙絕倫——巧用位移運算符獲得漢字編碼289
技巧03來者不拒——使用Params關鍵字指定多個參數290
技巧04應對自如——如果可能,盡量使用接口來編程291
技巧05首當其沖——使用屬性代替公共成員變量291
技巧06武林秘籍——對需要排序的對象實現IComparable或IComparer接口293
技巧07高效執行——善于使用構造函數鏈294
技巧08步調一致——使用靜態構造方法來初始化靜態成員變量295
技巧09武林秘籍——總是為自定義類重寫ToString方法296
技巧10以逸待勞——使用using語句實例化類297
技巧11首當其沖——在遍歷集合時優先使用foreach語句297
技巧12外圍攻擊——為密封類添加新方法298
技巧13武林秘籍——轉換數組類型299
技巧14顛倒乾坤——反轉數組中元素的順序300
技巧15查找有方——檢索指定條件數組中的元素301
技巧16變化莫測——動態改變數組長度302
技巧17核心機密——獲取當前程序集的版本號303
技巧18武林秘籍——如何讓線程跨越應用程序域執行304
技巧19異曲同工——使用反射技術實例化對象305
技巧20武林秘籍——C#產生隨機數306
技巧21LINQ操作——使用LINQ轉換序列或集合306
技巧22LINQ操作——使用LINQ初始化數組308
技巧23LINQ操作——使用LINQ在一個循環中遍歷多個數組308
技巧24LINQ操作——使用LINQ生成隨機序列309
技巧25LINQ操作——使用LINQ生成字符串310
第12章 開發技巧-Windows開發技術311
技巧01雍容華貴——設計帶進度條的狀態欄312
技巧02異曲同工——設置系統的日期和時間312
技巧03前沿陣地——使某個窗體總顯示在最前面313
技巧04安全警告——在窗體關閉前顯示對話框314
技巧05惟妙惟肖——在托盤中顯示應用程序圖標315
技巧06深入淺出——制作半透明的漸顯窗體316
技巧07回顧歷史——帶歷史信息的菜單316
技巧08精準定位——控制TextBox控件的插入點317
技巧09查找有方——在ListBox控件中查找某項318
技巧10絢麗多彩——在ListView控件中加載圖片319
技巧11異曲同工——區分TreeView控件選中各節點的方式320
技巧12全盤搜索——使用TREEVIEW遍歷磁盤目錄322
技巧13綁定數據——List<T>綁定ComboBox控件323
技巧14一目了然——使用ProgressBar顯示進度324
技巧15溫馨提示——使用ToolTip控件提示信息325
技巧16控件操作——選中或取消CheckListBox控件的全部項325
技巧17校驗真偽——設置MaskedTextBox控件輸入驗證326
技巧18統一調度——Mdi窗體打開子窗體的通用方法327
技巧19異地傳輸——怎樣把數據從一個窗體傳遞到另一個窗體328
技巧20受制于人——使用C#編寫程序控制輸入法329
技巧21精準定位——獲得光標在多行TextBox中的行與列330
技巧22你被監控——截取系統消息331
技巧23模擬操作——模擬鍵盤操作332
技巧24模擬操作——模擬鼠標操作333
技巧25核心機密——獲取CPU的編號和網卡地址334
技巧26受制于人——在TextBox中只允許輸入表示數值的字符335
技巧27統一管理——設置窗體中所有的控件為啟用或禁用狀態336
技巧28自動控制——C#打開/關閉CDROM337
技巧29強強聯合——C#操作Word文件338
技巧30強強聯合——C#操作Excel文件339
技巧31獨一無二——應用程序只運行一個實例340
技巧32深藏不漏——不顯示命令行窗口后臺運行控制臺程序340
技巧33伸縮自如——創建在運行狀態下可拖曳和可拉伸的文本框341
技巧34獲取機密——Windows操作注冊表342
技巧35獨一無二——實現MDI框架窗體不重復打開同一個子窗體343
技巧36交流溝通——實現兩個ListBox控件間交換數據344
技巧37武林秘籍——實現在TextBox中按回車鍵相當于按<tab>鍵345
技巧38武林秘籍——使用RichTextBox控件保存文件346
技巧39強強聯合——C#讀取Excel表格中的數據347
技巧40一手遮天——屏蔽系統<Ctrl+C/X/V>組合鍵的功能347
技巧41絢麗多彩——在ComboBox的下拉列表中顯示圖片348
技巧42浮想聯翩——實現ComboBox帶有聯想查詢功能349
技巧43身懷絕技——應用ClipBoard類實現系統<Ctrl+V>組合鍵的功能350
技巧44鼠標操作——禁止鼠標左鍵351
技巧45時隱時現——隱藏和顯示鼠標352
第13章 開發技巧-線程、進程及網絡技術353
技巧01武林秘籍——多線程綁定帶有參數的方法354
技巧02武林秘籍——獲取所有啟動的進程354
技巧03巧妙獲取——獲取當前進程的hash值355
技巧04順藤摸瓜——通過IP獲得主機信息356
技巧05武林秘籍——使用C#編寫程序自動ping對方的IP地址357
技巧06秘密搜查——掃描計算機端口號358
技巧07有求必應——建立TCP服務器359
技巧08發號指令——建立TCP客戶端360
技巧09自我展示——自定義Internet瀏覽器外觀361
技巧10千挑萬選——查找網頁中的所有超鏈接362
第14章 開發技巧-數據庫應用程序開發364
技巧01綁定數據——ComboBox控件綁定數據源365
技巧02綁定數據——CheckedListBox控件綁定數據源365
技巧03綁定數據——ListBox控件綁定數據源366
技巧04綁定數據——TreeView控件綁定數據源367
技巧05綁定數據——DataGridViewComboBoxColumn綁定數據源368
技巧06一專多能——編輯DataGridView控件后提交數據369
技巧07自我創新——在DataGridView控件中添加自定義列370
技巧08一掃而空——清空DataGridView控件中的數據371
技巧09分久必合——把數據表的兩個列合成一個列放入DataGridView中371
技巧10同甘共苦——使用事務同時提交多個數據表372
技巧11同甘共苦——使用隱式事務實現多表提交數據373
技巧12同甘共苦——實現數據表之間批量復制數據374
技巧13武林秘籍——使用序列化技術將圖像寫入數據庫375
技巧14武林秘籍——使用反序列化技術從數據庫中讀取圖像376
技巧15日新月異——獲取數據庫中的日期376
技巧16獨一無二——獲得數據表的主鍵377
技巧17一同前往——使用SqlDataAdapter同時查詢多條SQL語句378
技巧18隨心所欲——把任意文件保存到數據庫中379
技巧19異曲同工——將圖像保存到XML文件中379
技巧20顛倒乾坤——在數據表中實現行數據轉列380
第15章 開發技巧-其他實用技巧382
技巧01有規有矩——將數字轉換為日期格式383
技巧02有規有矩——使用Tostring方法得到多種日期格式383
技巧03有規有矩——使用ParseExact方法將字符串轉換為日期格式384
技巧04異曲同工——將小寫金額轉換為大寫金額385
技巧05有規有矩——使用NumberFormatinfo類將數字格式化為貨幣格式386
技巧06顛倒是非——將行字符串轉換為列字符串387
技巧07合情合理——把按照逗號分隔的字符串存儲在ArrayList數組中388
技巧08本末倒置——將字符串顛倒順序輸出389
技巧09辨別真偽——使用正則表達式判斷字符串是否為日期格式390
技巧10巧取豪奪——通過判斷ASCII編碼來截取字符串中的數字390
技巧11查驗真偽——使用正則表達式驗證個人常用信息391
技巧12查驗真偽——使用正則表達式驗證數字或字母392
技巧13查驗真偽——使用正則表達式驗證漢字輸入393
技巧14查驗真偽——使用正則表達式驗證大寫或小寫字母394
技巧15查驗真偽——使用正則表達式驗證整數或小數394
技巧16查找字符——使用正則表達式檢查字符串中連續重復出現的單詞395
技巧17核心機密——修改文件屬性396
技巧18更名改姓——修改文件夾名稱397
技巧19更名改姓——修改指定文件的名稱398
技巧20面面俱到——遍歷整個文件夾399
技巧21查找文件——搜索指定目錄下的指定文件400
技巧22操作文件——刪除文件夾中的所有文件401
技巧23巧妙分離——從文件的完整名稱中分離出路徑、文件名及擴展名402
技巧24實時監控——監視新創建的文件402
技巧25讀/寫文件——C#應用程序讀/寫INI文件403
技巧26操作內存流——讀/寫內存流數據405
技巧27操作緩沖流——使用緩沖流復制文件406
技巧28轉危為安——創建臨時文件407
技巧29如出一轍——比較兩個文件的內容是否相同408
技巧30圖像處理——從左向右以拉伸方式顯示圖像409
技巧31圖像處理——從上向下以拉伸方式顯示圖像410
技巧32繪聲繪色——使用GDI+技術繪制餅型圖412
技巧33伸縮自如——按比例縮放圖像413
技巧34圖片剪切——實現圖片剪切414
技巧35身懷絕技——在圖片中寫入文字416
技巧36美輪美奐——C#實現動畫效果417
技巧37格式轉換——轉換圖像文件的保存格式418
技巧38鼠標操作——利用鼠標繪圖419
技巧39屏幕抓圖——C#實現抓屏功能420
技巧40絢麗登場——動畫顯示窗體420
第5篇 算法和效率——程序員的得力助手422
第16章 常用的20個算法及應用423
算法01經典算法——冒泡排序算法424
算法02經典算法——選擇排序算法425
算法03經典算法——插入排序算法426
算法04經典算法——希爾排序算法427
算法05經典算法——單向鏈表428
算法06經典算法——雙向鏈表434
算法07經典算法——堆棧439
算法08經典算法——隊列442
算法09經典算法——樹的實現443
算法10實用算法——判斷素數的算法448
算法11實用算法——加密和解密算法449
算法12實用算法——按要求生成指定位數編號451
算法13實用算法——身份證號從15位升到18位算法452
算法14趣味算法——“百錢百雞”的算法454
算法15趣味算法——韓信點兵的算法454
算法16實用算法——實現裴波納契數列求和455
算法17實用算法——求水仙花數的算法457
算法18實用算法——如何將B轉換成GB、MB和KB458
算法19實用算法——0~N位數的任意組合459
算法20實用算法——在數組中快速查找近似值462
第6篇 解決方案——前人的經驗精髓464
第17章 C#開發人員必知必會的20個解決方案465
方案01天下無敵——通用數據訪問層解決方案466
方案02武林秘籍——C#自動配置ODBC數據源473
方案03幕后英雄——C#應用存儲過程處理數據478
Sub_01應用存儲過程添加數據方案478
Sub_02應用存儲過程修改數據方案480
Sub_03應用存儲過程刪除數據方案481
Sub_04應用存儲過程查詢數據方案482
方案04武林秘籍——查詢主鍵所擁有的外鍵約束信息483
方案05異曲同工——使用DataGridView控件直接提交數據487
方案06武林秘籍——動態設置水晶報表數據源492
方案07來去自如——C#備份和還原SQLServer數據庫496
Sub_01C#備份SQLServer數據庫497
Sub_02C#還原SQLServer數據庫499
方案08責權明晰——軟件模塊操作授權方案501
方案09解鎖秘籍——軟件注冊解決方案507
Sub_01利用注冊表設計軟件注冊程序507
Sub_02利用網卡序列號設計軟件注冊程序509
Sub_03根據CPU序列號、磁盤序列號設計軟件注冊程序512
方案10秘密防守——數據加密方案515
方案11自由自在——創建在運行狀態下可操作的控件517
方案12武林秘籍——復制文件方案521
Sub_01使用FileStream復制大文件521
Sub_02復制文件時顯示復制進度524
Sub_03批量復制文件526
方案13秘密防守——文本文件的加密與解密方案528
Sub_01使用對稱加密算法實現對文件的加密與解密528
Sub_02利用圖片對文本文件進行加密與解密534
方案14伸縮自如——文件壓縮與解壓縮方案537
Sub_01使用GZipStream類實現對文件的壓縮與解壓縮537
Sub_02使用WinRAR實現對文件的壓縮與解壓縮540
方案15另有玄機——C#多線程訪問WinForm方案543
方案16遠程遙控——計算機遠程控制解決方案546
Sub_01遠程控制計算機546
Sub_02遠程控制服務548
方案17異曲同工——在C#項目中引用完全相同的DLL文件551
方案18自我變換——把漢字轉換成拼音555
方案19武林秘籍——生成并打印條形碼557
方案20驗證真偽——中文驗證碼方案561
第1章 步入編程殿堂2
感悟01謹慎選擇——如何選擇編程語言3
感悟02重視基礎——學習編程要打好基本功4
感悟03規范代碼——養成良好的編碼規范4
感悟04內外兼修——要重視實踐練習5
感悟05持之以恒——堅持比激情更重要5
感悟06培養興趣——感悟編程的樂趣與成就感6
第2章 提高編程技能7
感悟07自我總結——善于總結編程經驗8
感悟08活學活用——思維方式要靈活8
感悟09相互交流——多向他人學習9
感悟10知識的海洋——善于利用豐富網絡資源10
感悟11堅持學習——學習與培訓的必要性10
感悟12品味編程——逐步培養個人的編程思想11
第3章 暢談編程12
感悟13重視細節——編程細節經驗談13
感悟14數據庫結構——數據庫設計經驗談13
感悟15實踐出真知——項目開發經驗談15
感悟16價值體現——信息技術改變我們的生活17
感悟17展望未來——展望中國IT行業的未來18
第2篇 陷阱與謬誤——汲取前人的教訓19
第4章 C#開發人員不可忽視的30個技術陷阱20
陷阱01漏洞百出——使用for刪除集合中元素時的陷阱21
陷阱02無法逃生——使用循環語句不慎產生死循環23
陷阱03并非尋常——在程序中暴露常量時產生的陷阱24
陷阱04變幻莫測——拆箱存在的隱患26
陷阱05危機四伏——相等運算符重載造成的陷阱28
陷阱06事與愿違——結構初始化產生的陷阱30
陷阱07防不勝防——params關鍵字載入空值時的陷阱31
陷阱08無風起浪——初始化靜態成員時產生的陷阱33
陷阱09誤入歧途——傳遞派生類產生的陷阱35
陷阱10隱患重重——數據類型轉換時可能存在的隱患37
陷阱11三思而行——構造方法中調用虛方法的陷阱39
陷阱12表里不一——保存空值到數據表日期字段存在的陷阱41
陷阱13三思而行——讀取數據庫中空字段值時的陷阱44
陷阱14糟糕透頂——使用null對數據庫的空值進行比較時的陷阱45
陷阱15防不勝防——遍歷ArrayList數組時可能存在陷阱47
陷阱16不知其二——以DataReader對象作為方法返回值的陷阱49
陷阱17迷霧重重——使用窗體的Controls屬性遍歷窗體控件時產生的陷阱51
陷阱18不容侵犯——獲取ComboBox的SelectedValue屬性時存在的陷阱53
陷阱19意想不到——SQLServer數據庫中DateTime類型的溢出陷阱56
陷阱20三思而行——用DataReader讀取數據時產生的陷阱58
陷阱21不知其二——獲取DataTable類型數據源產生的陷阱60
陷阱22空穴來風——當ExecuteScalar返回值為空時的陷阱61
陷阱23拒之門外——在DataGridView中插入行時的陷阱64
陷阱24波瀾起伏——清除DataGridView中數據時產生的陷阱65
陷阱25埋下禍患——在DataGridView中綁定自增列產生的陷阱68
陷阱26三思而行——使用值類型進行線程同步71
陷阱27危機四伏——引用類型對象自身進行同步的陷阱73
陷阱28三思而行——使用LINQ的First方法74
陷阱29自相矛盾——因讀/寫文件時編碼格式不一致而產生的陷阱76
陷阱30自相矛盾——讀/寫二進制文件的陷阱77
第5章 C#開發人員意識中的20個常見謬誤80
謬誤01誤入歧途——所有的異常都要使用trycatch語句捕獲81
謬誤02不知其二——事件和委托的差別很大82
謬誤03誤入歧途——C#中的string和String是不同類型82
謬誤04誤入歧途——.NET中的應用程序域和操作系統中的進程完全相同83
謬誤05誤入歧途——C#中不能定義一個全局可見的變量83
謬誤06不知其二——C#和SQLServer中“空”是一回事84
謬誤07不知其二——C#的結構與C++的結構完全一樣84
謬誤08不知其二——方法中只有引用類型的參數才能實現引用傳遞85
謬誤09不知其二——字符串是值類型86
謬誤10不知其二——C#中的數組類型和C++的數組沒有區別87
謬誤11不知其二——泛型在不被指定的情況下是不確定的類型87
謬誤12不知其二——Object類型比較方法上的一些誤解89
謬誤13不知其二——.NET中的線程等價于Win32線程90
謬誤14一字之差——重載方法就是重寫方法91
謬誤15必由之路——在try語句中使用return、finally語句得不到執行92
謬誤16相差懸殊——結構是一種輕型或小型的類93
謬誤17惡意猜測——多個線程同時調用靜態方法,其運行結果可能不準確94
謬誤18相差甚遠——String與StringBuilder基本上相同95
謬誤19混淆是非——結構不可以實現接口96
謬誤20不知其二——Environment.CurrentDirectory始終為應用程序文件的目錄97
第3篇 技術細節——修煉編程內功心法99
第6章 技術細節-C#語言基礎100
細節01打包變量——裝箱和拆箱101
細節02虛虛實實——理解值類型和引用類型102
細節03相互適應——隱式轉換和顯式轉換106
細節04齊步向前——理解移位運算符108
細節05等級制度——理解運算的次序110
細節06暢通無阻——理解參數的類型111
細節07同名同姓——重載方法115
細節08取而代之——虛方法與重寫方法116
細節09紙上談兵——接口的概念及聲明119
細節10血戰沙場——接口的兩種實現方式120
細節11不溫不火——抽象類與抽象方法124
細節12格格不入——什么是封裝126
細節13子承父業——什么是繼承128
細節14本是同根——什么是多態性130
細節15各司其職——作用域的概念133
細節16武林秘籍——使用索引器134
細節17父子情深——base和this關鍵字135
細節18靜觀其變——理解靜態修飾符137
細節19追本溯源——C#語言中的Object類139
細節20空穴來風——可空類型140
細節21分身之術——分部類141
細節22無名英雄——匿名方法143
細節23自言自語——.NET框架提供的屬性(Attribute)145
細節24自我介紹——自定義屬性類(Attribute)147
細節25武林秘籍——應用泛型148
細節26武林秘籍——包含/委托151
細節27定制循環——實現迭代器153
細節28對象克隆——C#中的深復制和淺復制155
細節29冒名頂替——重載一元、二元運算符156
細節30論資排輩——對象也能排序158
細節31異常處理——根據異常類型編寫專有catch語句160
細節32異常處理——自定義異常輸出信息162
細節33全權代理——委托的定義及應用163
細節34秘密事件——自定義事件164
細節35武林秘籍——對象的序列化與反序列化166
細節36武林秘籍——使用XML方式進行序列化和反序列化168
細節37自我主張——使用特性自定義XML序列化170
細節38自由進出——在C#中動態加載和卸載程序集171
細節39萬能類型——使用var創建隱型局部變量172
細節40委托殺手——Lambda表達式174
第7章 技術細節-Windows開發技術175
細節01一統天下——創建MDI窗體框架176
細節02迥然不同——模態對話框和非模態對話框179
細節03遺傳基因——WindwsForm窗體繼承181
細節04隨心所欲——DateTimePicker控件自定義顯示格式183
細節05異步助手——BackgroundWorker組件執行異步操作185
細節06毫無私情——使用ErrorProvider控件驗證文本框的輸入187
細節07最佳助手——使用HelpProvider控件調用幫助文件189
細節08強強聯合——制作復合控件190
細節09青出于藍——制作擴展控件192
細節10唯我獨尊——制作自定義控件193
第8章 技術細節-文件、數據流及圖形196
細節01靜觀其變——通過File類操作文件197
細節02異曲同工——通過Fileinfo類操作文件200
細節03靜觀其變——通過Directory類操作文件夾203
細節04異曲同工——通過Directoryinfo類操作文件夾205
細節05天下無敵——使用FileStream流讀/寫數據210
細節06略勝一籌——使用BufferedStream流讀/寫數據212
細節07專心致志——使用StreamReader和StreamWriter讀/寫數據214
細節08異曲同工——通過重寫窗體的OnPaint方法繪圖217
細節09完美無缺——使用雙緩沖技術繪圖218
細節10精打細算——繪制剪切區域220
第9章 技術細節-線程和網絡通信222
細節01異曲同工——使用異步委托執行線程223
細節02爭先恐后——多線程產生競態條件的原理225
細節03武林秘籍——使用lock關鍵字實現線程同步227
細節04武林秘籍——使用Monitor類和Mutex類實現線程同步229
細節05互不讓步——多線程產生死鎖的原理232
細節06包羅萬象——應用CLR的線程池234
細節07網絡基石——通過Dns類、IPAddress類、IPEndPoint類獲取網絡信息235
細節08精兵強將——使用Socket類、TcpClient類、TcpListener類實現網絡通信239
第10章 技術細節-數據庫、XML及LINQ245
細節01橋梁專家——高效地使用數據庫連接的兩種方式246
細節02永不分離——數據源的連接式訪問模式248
細節03一招制敵——ADO.NET影響一行的數據操作250
細節04一箭雙雕——ADO.NET影響多行的數據操作254
細節05武林秘籍——用XmlReader讀取XML257
細節06武林秘籍——用XmlWriter寫入XML258
細節07大浪淘沙——對象的篩選操作260
細節08小孔成像——對象的投影操作261
細節09論資排輩——對象的排序操作262
細節10精打細算——對象的聚合操作265
細節11重新組合——對象的集合操作269
細節12指點江山——對象的元素操作272
細節13首尾相連——對象的連接操作273
細節14單槍匹馬——查詢DataSet中的單個表275
細節15多多益善——查詢DataSet中的多個表277
細節16小孔成像——對DataSet進行投影操作278
細節17大浪淘沙——對DataSet進行篩選操作279
細節18論資排輩——對DataSet進行排序操作280
細節19精打細算——對DataSet進行聚合操作282
細節20指點江山——對DataSet進行元素操作282
細節21首尾相連——對DataSet進行連接操作283
細節22涇渭分明——對DataSet進行數據分區操作285
第4篇 編程技巧——程序員的神兵利器287
第11章 開發技巧-C#語言基礎288
技巧01武林秘籍——巧用異或運算符實現加密功能289
技巧02巧妙絕倫——巧用位移運算符獲得漢字編碼289
技巧03來者不拒——使用Params關鍵字指定多個參數290
技巧04應對自如——如果可能,盡量使用接口來編程291
技巧05首當其沖——使用屬性代替公共成員變量291
技巧06武林秘籍——對需要排序的對象實現IComparable或IComparer接口293
技巧07高效執行——善于使用構造函數鏈294
技巧08步調一致——使用靜態構造方法來初始化靜態成員變量295
技巧09武林秘籍——總是為自定義類重寫ToString方法296
技巧10以逸待勞——使用using語句實例化類297
技巧11首當其沖——在遍歷集合時優先使用foreach語句297
技巧12外圍攻擊——為密封類添加新方法298
技巧13武林秘籍——轉換數組類型299
技巧14顛倒乾坤——反轉數組中元素的順序300
技巧15查找有方——檢索指定條件數組中的元素301
技巧16變化莫測——動態改變數組長度302
技巧17核心機密——獲取當前程序集的版本號303
技巧18武林秘籍——如何讓線程跨越應用程序域執行304
技巧19異曲同工——使用反射技術實例化對象305
技巧20武林秘籍——C#產生隨機數306
技巧21LINQ操作——使用LINQ轉換序列或集合306
技巧22LINQ操作——使用LINQ初始化數組308
技巧23LINQ操作——使用LINQ在一個循環中遍歷多個數組308
技巧24LINQ操作——使用LINQ生成隨機序列309
技巧25LINQ操作——使用LINQ生成字符串310
第12章 開發技巧-Windows開發技術311
技巧01雍容華貴——設計帶進度條的狀態欄312
技巧02異曲同工——設置系統的日期和時間312
技巧03前沿陣地——使某個窗體總顯示在最前面313
技巧04安全警告——在窗體關閉前顯示對話框314
技巧05惟妙惟肖——在托盤中顯示應用程序圖標315
技巧06深入淺出——制作半透明的漸顯窗體316
技巧07回顧歷史——帶歷史信息的菜單316
技巧08精準定位——控制TextBox控件的插入點317
技巧09查找有方——在ListBox控件中查找某項318
技巧10絢麗多彩——在ListView控件中加載圖片319
技巧11異曲同工——區分TreeView控件選中各節點的方式320
技巧12全盤搜索——使用TREEVIEW遍歷磁盤目錄322
技巧13綁定數據——List<T>綁定ComboBox控件323
技巧14一目了然——使用ProgressBar顯示進度324
技巧15溫馨提示——使用ToolTip控件提示信息325
技巧16控件操作——選中或取消CheckListBox控件的全部項325
技巧17校驗真偽——設置MaskedTextBox控件輸入驗證326
技巧18統一調度——Mdi窗體打開子窗體的通用方法327
技巧19異地傳輸——怎樣把數據從一個窗體傳遞到另一個窗體328
技巧20受制于人——使用C#編寫程序控制輸入法329
技巧21精準定位——獲得光標在多行TextBox中的行與列330
技巧22你被監控——截取系統消息331
技巧23模擬操作——模擬鍵盤操作332
技巧24模擬操作——模擬鼠標操作333
技巧25核心機密——獲取CPU的編號和網卡地址334
技巧26受制于人——在TextBox中只允許輸入表示數值的字符335
技巧27統一管理——設置窗體中所有的控件為啟用或禁用狀態336
技巧28自動控制——C#打開/關閉CDROM337
技巧29強強聯合——C#操作Word文件338
技巧30強強聯合——C#操作Excel文件339
技巧31獨一無二——應用程序只運行一個實例340
技巧32深藏不漏——不顯示命令行窗口后臺運行控制臺程序340
技巧33伸縮自如——創建在運行狀態下可拖曳和可拉伸的文本框341
技巧34獲取機密——Windows操作注冊表342
技巧35獨一無二——實現MDI框架窗體不重復打開同一個子窗體343
技巧36交流溝通——實現兩個ListBox控件間交換數據344
技巧37武林秘籍——實現在TextBox中按回車鍵相當于按<tab>鍵345
技巧38武林秘籍——使用RichTextBox控件保存文件346
技巧39強強聯合——C#讀取Excel表格中的數據347
技巧40一手遮天——屏蔽系統<Ctrl+C/X/V>組合鍵的功能347
技巧41絢麗多彩——在ComboBox的下拉列表中顯示圖片348
技巧42浮想聯翩——實現ComboBox帶有聯想查詢功能349
技巧43身懷絕技——應用ClipBoard類實現系統<Ctrl+V>組合鍵的功能350
技巧44鼠標操作——禁止鼠標左鍵351
技巧45時隱時現——隱藏和顯示鼠標352
第13章 開發技巧-線程、進程及網絡技術353
技巧01武林秘籍——多線程綁定帶有參數的方法354
技巧02武林秘籍——獲取所有啟動的進程354
技巧03巧妙獲取——獲取當前進程的hash值355
技巧04順藤摸瓜——通過IP獲得主機信息356
技巧05武林秘籍——使用C#編寫程序自動ping對方的IP地址357
技巧06秘密搜查——掃描計算機端口號358
技巧07有求必應——建立TCP服務器359
技巧08發號指令——建立TCP客戶端360
技巧09自我展示——自定義Internet瀏覽器外觀361
技巧10千挑萬選——查找網頁中的所有超鏈接362
第14章 開發技巧-數據庫應用程序開發364
技巧01綁定數據——ComboBox控件綁定數據源365
技巧02綁定數據——CheckedListBox控件綁定數據源365
技巧03綁定數據——ListBox控件綁定數據源366
技巧04綁定數據——TreeView控件綁定數據源367
技巧05綁定數據——DataGridViewComboBoxColumn綁定數據源368
技巧06一專多能——編輯DataGridView控件后提交數據369
技巧07自我創新——在DataGridView控件中添加自定義列370
技巧08一掃而空——清空DataGridView控件中的數據371
技巧09分久必合——把數據表的兩個列合成一個列放入DataGridView中371
技巧10同甘共苦——使用事務同時提交多個數據表372
技巧11同甘共苦——使用隱式事務實現多表提交數據373
技巧12同甘共苦——實現數據表之間批量復制數據374
技巧13武林秘籍——使用序列化技術將圖像寫入數據庫375
技巧14武林秘籍——使用反序列化技術從數據庫中讀取圖像376
技巧15日新月異——獲取數據庫中的日期376
技巧16獨一無二——獲得數據表的主鍵377
技巧17一同前往——使用SqlDataAdapter同時查詢多條SQL語句378
技巧18隨心所欲——把任意文件保存到數據庫中379
技巧19異曲同工——將圖像保存到XML文件中379
技巧20顛倒乾坤——在數據表中實現行數據轉列380
第15章 開發技巧-其他實用技巧382
技巧01有規有矩——將數字轉換為日期格式383
技巧02有規有矩——使用Tostring方法得到多種日期格式383
技巧03有規有矩——使用ParseExact方法將字符串轉換為日期格式384
技巧04異曲同工——將小寫金額轉換為大寫金額385
技巧05有規有矩——使用NumberFormatinfo類將數字格式化為貨幣格式386
技巧06顛倒是非——將行字符串轉換為列字符串387
技巧07合情合理——把按照逗號分隔的字符串存儲在ArrayList數組中388
技巧08本末倒置——將字符串顛倒順序輸出389
技巧09辨別真偽——使用正則表達式判斷字符串是否為日期格式390
技巧10巧取豪奪——通過判斷ASCII編碼來截取字符串中的數字390
技巧11查驗真偽——使用正則表達式驗證個人常用信息391
技巧12查驗真偽——使用正則表達式驗證數字或字母392
技巧13查驗真偽——使用正則表達式驗證漢字輸入393
技巧14查驗真偽——使用正則表達式驗證大寫或小寫字母394
技巧15查驗真偽——使用正則表達式驗證整數或小數394
技巧16查找字符——使用正則表達式檢查字符串中連續重復出現的單詞395
技巧17核心機密——修改文件屬性396
技巧18更名改姓——修改文件夾名稱397
技巧19更名改姓——修改指定文件的名稱398
技巧20面面俱到——遍歷整個文件夾399
技巧21查找文件——搜索指定目錄下的指定文件400
技巧22操作文件——刪除文件夾中的所有文件401
技巧23巧妙分離——從文件的完整名稱中分離出路徑、文件名及擴展名402
技巧24實時監控——監視新創建的文件402
技巧25讀/寫文件——C#應用程序讀/寫INI文件403
技巧26操作內存流——讀/寫內存流數據405
技巧27操作緩沖流——使用緩沖流復制文件406
技巧28轉危為安——創建臨時文件407
技巧29如出一轍——比較兩個文件的內容是否相同408
技巧30圖像處理——從左向右以拉伸方式顯示圖像409
技巧31圖像處理——從上向下以拉伸方式顯示圖像410
技巧32繪聲繪色——使用GDI+技術繪制餅型圖412
技巧33伸縮自如——按比例縮放圖像413
技巧34圖片剪切——實現圖片剪切414
技巧35身懷絕技——在圖片中寫入文字416
技巧36美輪美奐——C#實現動畫效果417
技巧37格式轉換——轉換圖像文件的保存格式418
技巧38鼠標操作——利用鼠標繪圖419
技巧39屏幕抓圖——C#實現抓屏功能420
技巧40絢麗登場——動畫顯示窗體420
第5篇 算法和效率——程序員的得力助手422
第16章 常用的20個算法及應用423
算法01經典算法——冒泡排序算法424
算法02經典算法——選擇排序算法425
算法03經典算法——插入排序算法426
算法04經典算法——希爾排序算法427
算法05經典算法——單向鏈表428
算法06經典算法——雙向鏈表434
算法07經典算法——堆棧439
算法08經典算法——隊列442
算法09經典算法——樹的實現443
算法10實用算法——判斷素數的算法448
算法11實用算法——加密和解密算法449
算法12實用算法——按要求生成指定位數編號451
算法13實用算法——身份證號從15位升到18位算法452
算法14趣味算法——“百錢百雞”的算法454
算法15趣味算法——韓信點兵的算法454
算法16實用算法——實現裴波納契數列求和455
算法17實用算法——求水仙花數的算法457
算法18實用算法——如何將B轉換成GB、MB和KB458
算法19實用算法——0~N位數的任意組合459
算法20實用算法——在數組中快速查找近似值462
第6篇 解決方案——前人的經驗精髓464
第17章 C#開發人員必知必會的20個解決方案465
方案01天下無敵——通用數據訪問層解決方案466
方案02武林秘籍——C#自動配置ODBC數據源473
方案03幕后英雄——C#應用存儲過程處理數據478
Sub_01應用存儲過程添加數據方案478
Sub_02應用存儲過程修改數據方案480
Sub_03應用存儲過程刪除數據方案481
Sub_04應用存儲過程查詢數據方案482
方案04武林秘籍——查詢主鍵所擁有的外鍵約束信息483
方案05異曲同工——使用DataGridView控件直接提交數據487
方案06武林秘籍——動態設置水晶報表數據源492
方案07來去自如——C#備份和還原SQLServer數據庫496
Sub_01C#備份SQLServer數據庫497
Sub_02C#還原SQLServer數據庫499
方案08責權明晰——軟件模塊操作授權方案501
方案09解鎖秘籍——軟件注冊解決方案507
Sub_01利用注冊表設計軟件注冊程序507
Sub_02利用網卡序列號設計軟件注冊程序509
Sub_03根據CPU序列號、磁盤序列號設計軟件注冊程序512
方案10秘密防守——數據加密方案515
方案11自由自在——創建在運行狀態下可操作的控件517
方案12武林秘籍——復制文件方案521
Sub_01使用FileStream復制大文件521
Sub_02復制文件時顯示復制進度524
Sub_03批量復制文件526
方案13秘密防守——文本文件的加密與解密方案528
Sub_01使用對稱加密算法實現對文件的加密與解密528
Sub_02利用圖片對文本文件進行加密與解密534
方案14伸縮自如——文件壓縮與解壓縮方案537
Sub_01使用GZipStream類實現對文件的壓縮與解壓縮537
Sub_02使用WinRAR實現對文件的壓縮與解壓縮540
方案15另有玄機——C#多線程訪問WinForm方案543
方案16遠程遙控——計算機遠程控制解決方案546
Sub_01遠程控制計算機546
Sub_02遠程控制服務548
方案17異曲同工——在C#項目中引用完全相同的DLL文件551
方案18自我變換——把漢字轉換成拼音555
方案19武林秘籍——生成并打印條形碼557
方案20驗證真偽——中文驗證碼方案561
主題書展
更多
主題書展
更多書展購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

