作者:明日科技
圖書詳細信息:ISBN:9787302276562
定價:49.8元印次:1-1
裝幀:平裝
印刷日期:2011-12-30圖書簡介:
本書以C#基礎知識為框架,介紹了各部分知識所對應的常用開發疑難問題,並進行透徹地解析。本書內容包括C#語言及其開發環境、掌握C#語言基礎、流程控制語句、字元與字元串、數組和集合、C#面向對象程式設計、異常處理和程式調試、Windows窗體、Windows應用程式常用控制項、Windows應用程式高級控制項、C#面向對象高級技術、數據訪問技術、水晶報表與列印、檔案及數據流技術、GDI+繪圖、多執行緒技術、網路編程技術、註冊表技術、C#語言新技術和Windows應用程式打包部署。
本書所涉及的疑難問題都是一線開發人員在實際項目中遇到的,書中針對這些問題給出了解決方案,並進行了技術上的解析。讀者通過對本書的學習,能夠提高實際解決問題的能力。
本書提供了大量的源程式、素材,提供了相關的模組庫、案例庫、素材庫、題庫等多種形式的輔助學習資料,還提供迅速及時的微博、QQ、論壇等技術支持。
本書內容詳盡,非常適合作為C#開發人員的學習用書和必備參考手冊,也適合作為相關培訓機構的師生和軟體開發人員的參考資料。
學會站在巨人的肩膀上!
程式設計師在求職時,經常會被問到有關開發經驗的問題。例如,“從事了多少年的開發?” “參與了哪些大型項目?”等。為何面試官對項目經驗豐富的求職者青睞有加?究其根源在於程式開發是一門實踐性非常強的學科。“紙上得來終覺淺,絕知此事要躬行”,編程經驗是程式開發者在實踐中積累的技術資源庫,裡面是各種習慣用法、知識理論、代碼片段和套用技巧。而編程高手一般也是站在前人的肩膀上,分析別人的代碼而有所領悟,或者借鑑他人的經驗技巧形成自己的技能,在認識錯誤與解決問題中進步。這也是每個編程者的必經之路。
本書圖文並茂、難易並舉,匯集了300餘個一線開發人員常見的C#編程疑難問題,每個問題都給出了詳細的解答與點評。通過對本書的學習,您可以盡享前人的開發經驗,迅速提升個人的開發能力。
本書內容
本書以C#基礎知識結構為框架,給出了每部分知識中可能遇到的疑難問題或者是開發技巧。本書共分為20章,包括C#語言及其開發環境、掌握C#語言基礎、流程控制語句、字元與字元串、數組和集合、C#面向對象程式設計、異常處理和程式調試、Windows窗體、Windows應用程式常用控制項、Windows應用程式高級控制項、C#面向對象高級技術、數據訪問技術、水晶報表與列印、檔案及數據流技術、GDI+繪圖、多執行緒技術、網路編程技術、註冊表技術、C#語言新技術和Windows應用程式打包部署。
為了更清晰地闡述問題和給出問題的解決方案,本書設定了以下欄目。
* 問題闡述:對問題進行詳細闡述,對於複雜問題,給出問題產生的條件,並對問題中需要解決的部分做出說明。
* 專家解答:根據問題進行具體分析,給出問題的正確答案及解題思路,提供該問題涉及的技術知識。
* 專家點評:對問題及解答做出總結,為以後的問題解決提供思路,以及給出此問題應該注意的事項和對該問題的一些拓展。
本書特色
* 貼近套用。本書精選的疑難問題都是在實際項目開發中遇到的,可以解決讀者在編程中可能碰到的疑難問題。
* 橫向連結。本書知識框架與《C#開發入門及項目實戰》一書相對應,可以在對《C#開發入門及項目實戰》一書進行基礎學習之後,再用本書來豐富自己並提高技能。
* 解析透徹。本書對每個問題的相關知識進行細緻地講解,並進行知識拓展,使讀者不僅知其然,而且知其所以然。
* 授人以漁。本書在講解技術的同時,還注重對讀者能力的培養,使讀者掌握分析與解決問題的能力。
本書配套資源
本書提供了內容豐富的配套資源,包括源程式、素材,以及模組庫、案例庫、題庫、素材庫等多項輔助內容,讀者朋友可以通過如下方式獲取。
第1種方式:
(1)登錄清華大學出版社的網站,在網頁右上角的搜尋文本框中輸入本書書名(注意區分大小寫和留出空格),或者輸入本書關鍵字,或者輸入本書ISBN號(注意去掉ISBN號間隔線“-”),單擊“搜尋”按鈕。
(2)找到本書後單擊超連結,在該書的網頁下側單擊“網路資源”超連結,即可下載。
第2種方式:
訪問本書的新浪微博CSmrbook,找到配套資源的連結地址進行下載。
讀者人群
本書非常適合以下人員閱讀:
* 從事C#語言編程行業的開發人員
* 有一定語言基礎,想進一步提高技能的人員
* 大中專院校的老師和學生
* 即將走上工作崗位的大學畢業生
* 相關培訓機構的老師和學員
* C#編程愛好者
第1章 C#語言及其開發環境 1
問題1 C#與有什麼關係? 2
問題2 CTS、CLS和CLR分別
作何解釋? 2
問題3 visual studio 2010可以編寫
哪些類型的應用程式? 4
問題4 為何Visual Studio 2010安裝
失敗? 5
問題5 怎樣安裝Visual Studio 2010
的幫助文檔? 6
問題6 designer.cs和.resx分別是什麼? 8
問題7 怎樣設定斷點,設定斷點有
什麼好處? 8
問題8 我的代碼為什麼不顯示行號? 9
問題9 怎樣使窗體中的控制項布局統一? 10
問題10 可以將控制項的位置和大小
固定嗎? 11
問題11 我的Windows應用程式為
什麼不顯示控制項? 11
第2章 掌握C#語言基礎 13
問題12 什麼是命名空間?命名空間
和類庫的關係是什麼? 14
問題13 Console.WriteLine與Console.
Write方法有什麼區別? 14
問題14 數據類型轉換為何總是出錯? 15
問題15 值類型和引用類型有什麼
區別? 17
問題16 如何實現按值傳遞引用類型? 19
問題17 如何實現按引用傳遞引用
類型? 20
問題18 變數一定要賦初值嗎? 22
問題19 為string類型的變數賦空值
的方式有哪幾種? 22
問題20 常量中有換行符怎么辦? 23
問題21 三目運算符怎么出錯了呢? 24
問題22 i++和++i該怎么區分? 25
問題23 “&”與“&&”符號有
什麼區別? 26
問題24 相等運算符重載出錯怎么辦? 27
問題25 拆箱失敗了怎么辦? 29
問題26 什麼是深複製和淺複製,
可以舉個例子嗎? 31
第3章 流程控制語句 34
問題27 為什麼else後面的語句只
執行第一句? 35
問題28 if語句不能and多條件嗎? 37
問題29 產生死循環的原因是什麼? 38
問題30 for和foreach有什麼區別? 40
問題31 while和do…while有什麼
區別? 41
問題32 break、continue、goto和
return有什麼區別? 43
問題33 如何使用goto語句查找
指定信息? 46
問題34 如何使用for語句無限循環? 47
問題35 使用for語句應該注意什麼? 48
問題36 如何跳出while循環? 49
第4章 字元與字元串 51
問題37 C#程式代碼中的(char)8和
‘8’有什麼不同? 52
問題38 怎樣將字元串首字母轉換
為大寫或小寫? 52
問題39 “Path += @"\01.jpg";”這句
代碼中,“+=” 是什麼意思?
“@”用來做什麼? 53
問題40 怎樣隨機產生一個自定義
長度的字元串? 54
問題41 如何判斷輸入的字元串是
否為數字? 55
問題42 判斷一個字元串由多少個
字母組成 56
問題43 如何計算字元串中某個
字元出現的次數? 59
問題44 如何查找字元串中的指定
字元串? 60
問題45 批量替換某一類字元串該
如何實現? 62
問題46 怎樣實現小數的四捨五入? 63
問題47 如何在比較字元串時忽略
大小寫? 66
問題48 如何刪除子字元串? 67
問題49 如何刪除指定字元以外的
所有字元? 68
問題50 如何判斷一個字元串是不
是回文字元串? 69
問題51 如何將字元串轉換為日期
格式? 71
問題52 string和StringBuilder有
什麼區別? 73
問題53 如何去掉字元串中的所有
空格? 73
問題54 有幾種比較字元串的方法? 75
第5章 數組和集合 79
問題55 數組的類型可以轉換嗎? 80
問題56 索引超出了數組界限是怎
么回事? 81
問題57 在數組中如何查找一個數
的近似值? 82
問題58 如何確定元素在數組中
的位置? 84
問題59 如何按指定條件在數組中
檢索元素? 86
問題60 如何動態改變數組的長度? 88
問題61 如何使用交錯數組列印
楊輝三角形? 89
問題62 冒泡排序算法的實現 91
問題63 選擇排序算法的實現 93
問題64 插入排序算法的實現 94
問題65 希爾排序算法的實現 96
問題66 怎樣反轉數組中元素的順序? 97
問題67 如何把一個Array數組
複製到ArrayList中? 99
問題68 如何實現數組間元素的複製? 102
問題69 棧和佇列有什麼區別? 104
問題70 RemoveAt方法刪除元素時
出錯 105
問題71 如何使用ArrayList類實現
N位數的任意組合? 107
問題72 怎樣把分割後的字元串
存儲到ArrayList中? 109
第6章 C#面向對象程式設計 111
問題73 為什麼要面向對象? 112
問題74 初始化靜態成員出錯怎么辦? 113
問題75 靜態成員與實例成員有
什麼不同? 115
問題76 如何區別各種作用域修飾符? 116
問題77 欄位和屬性有什麼不同? 118
問題78 構造函式和析構函式有
什麼不同? 119
問題79 事件和委託有什麼關係? 120
問題80 類和結構有什麼不同? 121
問題81 怎樣傳遞值類型的參數? 122
問題82 如何對值類型的參數進行
引用傳遞? 123
問題83 可以使用屬性代替公共成
員變數嗎? 124
問題84 為什麼要引入重載方法? 125
問題85 重載和重寫有什麼區別? 127
問題86 怎樣使用類的多態特性? 129
問題87 能夠將非靜態的方法重寫
成靜態方法嗎? 131
問題88 為什麼要封裝? 132
問題89 類只可以單繼承嗎? 134
問題90 可以在子類的構造函式中
調用虛方法嗎? 136
第7章 異常處理和程式調試 139
問題91 什麼是結構化異常處理機制? 140
問題92 如何編寫專有的catch語
句處理異常? 141
問題93 如何避免類型轉換時產生
的異常? 143
問題94 異常處理可以自定義嗎? 144
問題95 怎樣使用日誌記錄程式中
的異常? 145
問題96 在try語句中使用return時,
finally語句是否仍然被執行? 146
問題97 在程式中插入斷點有哪幾
種方式? 147
問題98 如何處理程式中的BUG? 148
問題99 如何處理重載相等運算符
引發的異常? 149
問題100 為什麼更改常量運行後
得到的值不變? 152
問題101 為什麼使用null與DBNull
進行比較會引發異常? 154
問題102 為什麼將空值保存到日期
欄位卻不為空? 156
問題103 使用params關鍵字時出
現空引用是怎么回事? 159
問題104 如何解決傳遞派生類引發
的異常? 161
問題105 如何處理使用DataReader
讀取數據引發的異常? 163
第8章 Windows窗體 166
問題106 如何隨機更換窗體主界
面背景? 167
問題107 如何實現滑鼠穿透窗體? 168
問題108 Office精靈是怎么製作的? 170
問題109 怎樣實現無框線窗體的
拖動? 172
問題110 如何通過拖動工作區來
移動窗體? 173
問題111 怎樣向窗體中拖動圖片? 173
問題112 圖形形狀的窗體是怎么
製作的? 175
問題113 多文檔界面是如何製作的? 177
問題114 如何設定系統托盤圖示? 177
問題115 如何通過子窗體刷新父
窗體? 179
問題116 MDI窗體中的子窗體應
該怎樣布局? 181
問題117 如何修改繼承窗體中控
件的屬性? 182
第9章 Windows應用程式常用控制項 185
問題118 控制項和窗體是同一基類嗎? 186
問題119 如何創建可以拉伸的選單? 186
問題120 如何製作帶歷史信息的
下拉列表? 188
問題121 如何設計TextBox中只允
許輸入數值? 189
問題122 如何禁止TextBox控制項上
的貼上功能? 190
問題123 如何將資料庫中的數據添
加到ListView控制項中? 191
問題124 如何設定RichTextBox中文
本的對齊方式? 192
問題125 怎樣實現在得到滑鼠焦點後
自動放大的Button按鈕? 193
問題126 在程式運行時如何智慧型增
減控制項? 194
問題127 如何將集合元素添加到
ComboBox控制項? 196
問題128 Office助手是怎么實現的? 197
問題129 如何對ListBox控制項項進
行降序排列? 198
問題130 如何使用選擇控制項實現
複雜查詢? 198
問題131 MDI子窗體的選單是如何
與主窗體的選單合併的? 199
問題132 如何打開一個最近打開
過的檔案? 203
問題133 如何實現只能在打開對話框
中選擇文本檔案? 204
問題134 如何實現工具列的拖動? 205
問題135 製作一個OutLook式的窗
體需要用到哪些控制項? 206
第10章 Windows應用程式高級
控制項 207
問題136 如何獲取彈出對話框的相
關返回值? 208
問題137 如何利用選擇控制項實現
許可權設定? 208
問題138 如何在ListView中顯示
圖像列? 210
問題139 如何設定“打開”對話框
中只能選擇圖片檔案? 211
問題140 如何製作帶複選框的ListView
控制項? 213
問題141 類QQ的程式界面該如
何實現? 214
問題142 如何使用鍵盤和滑鼠獲得
TreeView中的節點? 217
問題143 如何實現一個日曆計畫
任務? 219
問題144 如何使用TreeView控制項
製作導航選單? 221
問題145 如何使用MaskedTextBox
控制項進行輸入驗證? 223
問題146 ListView控制項中的數據排序
是如何實現的? 224
問題147 如何製作動畫背景窗體? 225
問題148 如何實現播放幻燈片的螢幕
保護程式? 226
問題149 怎樣實現閃爍的標題欄? 228
問題150 如何使用ProgressBar控制項顯
示操作的進度? 229
第11章 C#面向對象高級技術 231
問題151 C#語言如何實現多重繼
承的特性? 232
問題152 為什麼在使用具有相同簽名
的接口方法時會出錯? 233
問題153 接口和抽象類的區別是
什麼? 234
問題154 什麼是接口分離原則? 235
問題155 結構可以實現接口嗎? 236
問題156 如何使用虛方法或接口
截取系統訊息? 237
問題157 如何使用分部類記錄
數據信息? 239
問題158 哪種情況下需要用到
密封類? 240
問題159 密封類可以添加新方法嗎? 241
問題160 如何套用C#中的委託? 242
問題161 如何套用C#中的匿名
方法? 243
問題162 可否使用疊代器實現字
符串的倒序輸出? 245
問題163 泛型是用來乾什麼的,如何
自定義一個泛型方法? 246
問題164 怎樣聲明和使用泛型接口? 248
問題165 面向對象設計時需要注
意的問題有哪些? 249
第12章 數據訪問技術 251
問題166 Windows身份驗證和混合模式
身份驗證有什麼區別? 252
問題167 如何判斷計算機中是否
安裝了SQL軟體? 253
問題168 如何查看、修改和刪除
觸發器? 253
問題169 設計存儲過程應當遵循
哪些規則? 255
問題170 如何正確地理解和使用
SQL中的關鍵字? 257
問題171 如何在C#中調用存儲過程? 257
問題172 如何理解對象
模型? 261
問題173 如何防範SQL注入式攻擊? 262
問題174 如何進行資料庫備份及
還原? 262
問題175 什麼是LINQ,它有什麼
好處? 263
問題176 設定通用方法獲取查詢
結果DataSet數據集 264
問題177 如何將圖片以二進制形式
保存到資料庫中? 265
問題178 追加查詢結果到已存在的
表中 266
問題179 如何使用IN引入子查詢
限定查詢範圍? 267
問題180 使用事務向資料庫中批
量插入數據 268
第13章 水晶報表與列印 270
問題181 如何快速創建水晶報表? 271
問題182 如何設定圖片成為整個
報表的背景? 273
問題183 如何設定水晶報表的頁面? 273
問題184 如何設定報表的列印日
期與時間? 274
問題185 如何在報表中使用
文本對象? 275
問題186 如何在報表中篩選數據? 276
問題187 如何排序報表數據? 277
問題188 如何在水晶報表中使用
子報表? 278
問題189 如何在報表中計算百分比? 279
問題190 如何使用PrintDocument
控制項列印窗體數據? 280
問題191 巧用PrintPreviewControl
控制項實現列印預覽 281
問題192 如何實現圖形列印? 282
問題193 如何使用Excel列印學生
信息報表? 284
問題194 如何使用PrintDocument
控制項列印文本檔案? 285
第14章 檔案及數據流技術 288
問題195 如何檢索路徑中的檔案
名和擴展名? 289
問題196 如何獲得檔案大小? 289
問題197 如何使用filestream流讀
寫數據? 290
問題198 如何使用雙緩衝技術繪圖? 292
問題199 如何監視檔案系統變化
情況? 292
問題200 如何向檔案中寫入數據? 293
問題201 如何讀取檔案中所有數據? 294
問題202 如何實現檔案替換? 294
問題203 如何使用遞歸方法刪除文
件夾中的所有檔案? 295
問題204 如何使用OpenRead方法
打開現有檔案? 296
問題205 使用StreamReader類讀取
系統創建的文本檔案時,
為什麼會出現亂碼? 296
問題206 如何修改資料夾名稱? 297
問題207 如何遍歷資料夾? 298
問題208 如何讀寫記憶體數據流? 299
問題209 如何在C#中實現檔案
拖放? 300
問題210 如何使用緩衝流複製檔案? 300
問題211 如何搜尋檔案? 301
問題212 如何產生隨機資料夾名
或檔案名稱? 303
第15章 GDI+繪圖 304
問題213 怎樣實現在圖片上平滑
移動文字? 305
問題214 如何將文字保存為圖片? 306
問題215 通過重寫窗體的OnPaint
方法繪圖 306
問題216 如何獲取一張圖片中某個
點的RGB值? 307
問題217 如何為批量圖片添加
水印文字? 308
問題218 如何利用直線和曲線
消除鋸齒? 312
問題219 如何在GDI中縮放圖像? 313
問題220 如何利用柱形圖表分析
匯總數據? 314
問題221 如何利用餅形圖分析公
司男女比例? 316
問題222 如何用馬賽克效果
顯示圖像? 317
第16章 多執行緒技術 320
問題223 執行緒與進程之間是什麼
關係? 321
問題224 掛起執行緒與終止執行緒的
區別是什麼? 322
問題225 C#如何控制多執行緒之間
的優先權順序? 324
問題226 如何套用CLR執行緒池來
管理多執行緒? 326
問題227 實現多執行緒同步的方法
有幾種? 327
問題228 異步執行執行緒的兩種常
用方法是什麼? 329
問題229 產生競態條件的原理是
什麼? 331
問題230 多執行緒是如何產生死鎖的? 333
問題231 多執行緒產生死鎖的解決
辦法是什麼? 335
問題232 執行緒的執行方法可以有
參數嗎? 337
問題233 如何讓執行緒跨越套用程
序域執行? 338
問題234 怎樣通過執行緒監控指定
資料夾中的檔案變化? 340
問題235 是否可以通過創建執行緒
來連線資料庫? 341
問題236 C#如何使用多執行緒訪問
窗體上控制項? 342
問題237 使用多執行緒技術有什麼
優缺點? 344
第17章 網路編程技術 345
問題238 TCP/IP協定的實現原理
是什麼? 346
問題239 UDP協定的實現原理是
什麼? 347
問題240 TCP協定和UDP協定的
區別是什麼? 347
問題241 FTP伺服器有哪幾種登
錄方式? 348
問題242 偵聽網路傳入連線的方式
通常有哪幾種? 349
問題243 如何使用C#程式來傳送
電子郵件? 350
問題244 如何掃描區域網路中的所
有IP位址? 352
問題245 修改本機的IP位址是怎
么實現的? 356
問題246 修改本機的DNS地址是
怎么實現的? 357
問題247 使用C#程式獲取本機的
MAC地址 359
問題248 檢測計算機是否存在網
絡連線? 360
問題249 如何獲取網路中某台計
算機的磁碟信息? 361
問題250 怎樣獲得系統打開的端
口和狀態? 363
問題251 可以通過編程的方式實現
Ping命令操作嗎? 364
問題252 C#如何調用OutLook發
送郵件? 366
問題253 如何以斷點續傳方式下
載檔案? 367
第18章 註冊表技術 371
問題254 如何獲取當前項的所有
子項名稱? 372
問題255 如何獲取與當前項關聯
的所有值名稱? 373
問題256 DeleteSubKey與eleteSubKeyTree方法有什麼區別? 373
問題257 如何使用C#遍歷註冊表
中的所有項? 374
問題258 怎樣通過註冊表來禁用
“外觀”選項卡? 377
問題259 如何通過註冊表獲取IE
瀏覽器的版本? 377
問題260 如何通過註冊表獲取
Windows版本號? 378
問題261 C#備份與還原註冊表是
如何實現的? 379
問題262 可否使用C#建立檔案與
應用程式的關聯? 381
問題263 是否可以使用C#在右鍵菜
單中添加新選單命令? 382
問題264 是否可以通過操作註冊表
來設定桌面背景? 383
問題265 可以實現禁止系統列上
的右鍵功能嗎? 384
問題266 如何通過註冊表來最佳化
開關機速度? 384
問題267 如何禁止使用控制臺的
添加/刪除程式功能? 385
問題268 隱藏磁碟驅動器是如何
實現的? 385
問題269 怎樣禁止“開始”選單中
的“關機”功能? 387
問題270 怎樣實現自動關閉停止
回響的程式? 387
問題271 如何通過註冊表控制程式
的開機啟動? 388
問題272 怎樣通過註冊表來控制
軟體的試用次數? 389
問題273 可以通過程式自動配置
ODBC數據源嗎? 389
第19章 C#語言新技術 391
問題274 為什麼說LINQ查詢表達式的
執行是延遲執行? 392
問題275 可以強制LINQ查詢表達
式立即執行嗎? 393
問題276 如何使用Lambda表達式替換predicate<T>泛型委託? 394
問題277 是否可以使用LINQ技術簡化
序列到泛型列表的轉換? 395
問題278 使用LINQ技術可以操作
非泛型集合嗎? 397
問題279 怎樣通過擴展方法來自
定義操作符? 398
問題280 如何使用LINQ技術快速
查找重複字元串? 399
問題281 一個實體可以映射來自
多個表的數據嗎? 400
問題282 可以使用LINQ技術操作
存儲過程嗎? 401
問題283 可以使用LINQ技術獲取
資料庫連線信息嗎? 402
問題284 防止SQL注入可以使用
LINQ技術實現嗎? 403
問題285 怎樣使用LINQ技術實現
數據的分頁功能? 404
問題286 怎樣使用LINQ技術查詢
DataSet中的多個表? 406
問題287 如何將DataSet的查詢結
果轉換為DataTable? 408
問題288 如何將DataSet的查詢結
果轉換為dataview? 408
問題289 如何使用LINQ技術向XML
檔案中添加數據? 409
問題290 如何使用LINQ技術修改
XML檔案中的數據? 410
問題291 如何使用LINQ技術刪除
XML檔案中的數據? 411
問題292 合計XML中指定元素的
值該如何實現? 412
問題293 可以把SQL數據表中的
數據轉換成XML嗎? 413
第20章 Windows應用程式打包部署 415
問題294 windows installer有什麼
作用? 416
問題295 為Windows安裝程式添加
程式選單是怎么實現的? 416
問題296 製作安裝程式時如何打包
.NET Framework框架? 418
問題297 怎樣打包註冊表信息? 419
問題298 打包程式時怎樣設定
桌面圖示? 420
問題299 如何將特定檔案安裝到
指定資料夾中? 422
問題300 怎樣部署Windows
應用程式? 423
問題301 打包生成的.exe檔案和
.MSI檔案有何區別? 424