Visual Basic 2005技術內幕

Visual Basic 2005技術內幕

《Visual Basic 2005技術內幕》是2006年清華大學出版社出版的圖書,作者是賈洪峰。

圖書簡介

本書內容全面深入,涵蓋的主題十分豐富,並結合大量典型的代碼示例來講解Visual Basic 2005的核心編程技術。本書共分四部分。首先介紹了Visual Basic 2005的基礎知識,然後詳細介紹了Visual Basic語言的面向對象特性。之後介紹了有關.NET框架的基本類型。最後介紹了一些高級編程主題,例如執行緒處理、序列化、PInvoke和COM Interop等。

本書在多處指出了Visual Basic 2005與Visual Basic 6之間的區別以及Visual Basic 2005和.NET框架2.0版中的新功能,並介紹了導入和重用現有Visual Basic代碼的最佳方式,從Visual Basic低版本升級的用戶可以迅速掌握新工具。

本書是學習Visual Basic語言的高級參考書,適用於所有Visual Basic開發人員。

目 錄

第Ⅰ部分

基礎知識

第1章Microsoft.NET框架簡介

第2章基本語言概念 12

2.1模組、類與命名空間 12

2.1.1模組 13

2.1.2類 15

2.1.3命名空間 26

2.1.4屬性 32

2.2變數 34

2.2.1聲明與賦值 35

2.2.2數據類型 43

2.2.3運算符 51

2.2.4數組 65

第3章控制流和錯誤處理 70

3.1執行流的控制 70

3.1.1條件語句和循環語句 70

3.1.2過程 75

3.1.3命令、函式和常量 82

3.2錯誤處理 86

3.2.1引發異常 86

3.2.2Try...Catch...Finally語句 91

3.2.3Using...EndUsing語句 98

3.2.4自定義異常對象 100

第4章使用VisualBasic2005 102

4.1處理項目和解決方案 102

4.1.1項目和檔案模板 102

4.1.2【解決方案資源管理器】視窗 104

4.1.3MyProject設計器 106

4.1.4多項目解決方案 110

4.1.5配置管理器 112

4.1.6與編譯器相關的屬性 115

4.2編寫代碼 118

4.2.1代碼編輯器 118

4.2.2XML注釋 120

4.2.3查找與替換 122

4.2.4書籤 125

4.2.5【錯誤列表】與【任務列表】視窗 125

4.2.6代碼段 127

4.2.7重構代碼 130

4.3各種新舊特性 132

4.3.1使用【工具】視窗 132

4.3.2導入與導出設定 133

4.3.3項目和項模板 134

4.3.4訪問在線上內容 137

4.3.5自定義特性 137

4.3.6宏與命令 140

第5章調試VisualBasic應用程式 147

5.1調試技術 147

5.1.1斷點與跟蹤點 147

5.1.2單步執行 150

5.1.3數據提示和可視化工具 153

5.1.4處理異常 158

5.2跟蹤與基準測試 160

5.2.1Debug和Trace類 160

5.2.2TraceSource類 166

5.2.3My.Application.Log對象 168

5.2.4StopWatch類型 169

5.3單元測試 169

5.3.1創建測試項目 170

5.3.2運行測試項目 173

5.3.3用於單元測試的屬性 175

5.3.4從資料庫中載入測試 177

5.3.5TestContext類型 179

5.3.6私有訪問器 180

5.3.7代碼覆蓋 180

5.3.8性能工具 182

5.4更多的調試與測試技巧 184

5.4.1Debugger對象 184

5.4.2StackTrace對象 185

5.4.3Debug-in-Zone特性 187

5.4.4VisualStudio宿主進程 189

5.4.5用於調試的宏 189

5.4.6測試不同的配置檔案 191

第Ⅱ部分面向對象編程

第6章類的基礎知識 195

6.1欄位 195

6.2方法 198

6.2.1重載 198

6.2.2重載與強制轉換 200

6.2.3不明確的情況 200

6.3屬性 201

6.3.1隻讀與只寫屬性 202

6.3.2Get與Set語句塊的不同範圍 204

6.3.3帶有參數的屬性 205

6.3.4默認屬性 206

6.4構造函式 206重載的構造函式 208

6.5共享成員 209

6.5.1共享方法 209

6.5.2共享欄位 211

6.5.3共享屬性 213

6.5.4共享構造函式 214

6.5.5共享工廠方法 215

6.6部分類 217

6.7運算符重載 219

6.7.1Operator關鍵字 219

6.7.2可重載運算符 221

6.7.3重載CType運算符 223

6.7.4與其他語言的互操作性 224

6.8用VisualStudio管理類型 226

6.8.1【類視圖】視窗 226

6.8.2類設計器工具 226

6.8.3【對象測試工作檯】視窗 228

第7章委託和事件 229

7.1委託 229

7.1.1委託聲明 230

7.1.2委託調用 230

7.1.3Delegate類型的其他成員 232

7.1.4回調方法和代碼重用 233

7.1.5委託多路廣播 235

7.2事件 236

7.2.1利用Handles關鍵字處理事件 236

7.2.2WithEvents關鍵字 238處理分離類中的事件 239

7.2.3後台的事件與委託 240

7.2.4AddHandler關鍵字 242

7.2.5捕獲數組和集合事件 243

7.2.6公開事件 245

7.2.7事件語法的準則 246

7.2.8自定義事件 248

第8章繼承 251

8.1繼承的基礎知識 251使用派生類 253

8.2重載基類中的成員 254

8.2.1重載變體 255

8.2.2MyBase關鍵字 256

8.2.3派生類中的構造函式 257

8.2.4MyClass關鍵字 257

8.2.5成員遮蔽 260

8.2.6重定義靜態成員 262

8.3密封類和虛擬類 263

8.3.1NotInheritable關鍵字 263

8.3.2MustInherit關鍵字 264

8.3.3MustOverride關鍵字 265

8.4作用域 266

8.4.1嵌套類 266

8.4.2Public,Friend和Private作用域限定符 267

8.4.3Protected作用域限定符 268

8.4.4ProtectedFriend作用域限定符 269

8.4.5將作用域限定符用於構造函式 269

8.4.6重定義事件 271

8.5可視繼承 273

8.5.1基窗體舉例 273

8.5.2繼承的窗體舉例 274

8.5.3向基窗體中添加屬性、方法和事件 275

第9章對象生存期 280

9.1對垃圾收集的需求 280

9.1.1COM和引用計數器 280

9.1.2垃圾收集進程 281

9.1.3Finalize方法 282

9.1.4Dispose方法 284

9.1.5結合Dispose和Finalize方法 286

9.1.6更好的Dispose-Finalize模式 287

9.1.7派生類中的終結器 289

9.1.8終結的簡化方法 290

9.2高級技術 292

9.2.1世代 292

9.2.2垃圾收集與性能 294

9.2.3弱對象引用 297

9.2.4對象復活 299

9.2.5多CPU計算機上的垃圾收集 300

第10章接口 302

10.1定義和實現接口 302

10.1.1Interface...EndInterface語句 302

10.1.2實現接口 303

10.1.3訪問接口 305

10.1.4接口與繼承 306

10.1.5接口的重新實現 307

10.1.6接口與多態 308

10.2使用.NET接口 311

10.2.1IComparable接口 311

10.2.2IComparer接口 312

10.2.3ICloneable接口 314

10.2.4IDisposable接口 317

10.2.5編寫集合類 318

第11章泛型 325

11.1對泛型的需要 325

11.1.1傳統解決方案 326

11.1.2基於泛型的解決方案 327

11.2編寫泛型 328

11.2.1泛型參數 329

11.2.2泛型約束條件 338

11.3高級主題 344

11.3.1可以為空(Nullable)的類型 345

11.3.2對數學運算符的支持 349

11.3.3泛型和事件 351

11.3.4對象池 354

第12章.NET基本類型 359

12.1System.Object類型 359

12.1.1公共方法與受保護方法 359

12.1.2再談值類型和引用類型 361

12.1.3裝箱和取消裝箱 363

12.2字元串類型 364

12.2.1屬性和方法 364

12.2.2Missing方法 370

12.2.3字元串最佳化 371

12.2.4CultureInfo類型 372

12.2.5Encoding類 374

12.2.6格式化數值 375

12.2.7設定日期的格式 377

12.2.8Char類型 380

12.2.9StringBuilder類型 381

12.2.10SecureString類型 382

12.3數字類型 384

12.3.1屬性和方法 384

12.3.2格式化數字 385

12.3.3將字元串分析為數字 386

12.3.4Convert類型 387

12.3.5隨機數生成器 388

12.4DateTime類型 389

12.4.1日期值的加減 390

12.4.2格式化日期 392

12.4.3分析日期 393

12.4.4處理時區 394

12.4.5TimeZone類型 395

12.4.6Guid類型 396

12.5枚舉值 396

12.5.1顯示並分析枚舉值 397

12.5.2其他Enum方法 398

12.5.3位編碼值 399

第13章數組和集合 400

13.1數組類型 400

13.1.1元素的排序 402

13.1.2元素的刪除、複製與移動 403

13.1.3搜尋值 406

13.1.4交錯數組 407

13.1.5泛型方法 409

13.2System.Collections命名空間 413

13.2.1ICollection、IList和IDictionary接口 413

13.2.2ArrayList類型 414

13.2.3Hashtable類型 418

13.2.4SortedList類型 420

13.2.5其他集合 423

13.2.6強類型集合的抽象類型 426

13.3泛型集合 430

13.3.1List泛型 431

13.3.2Dictionary泛型 433

13.3.3LinkedList泛型 435

13.3.4其他泛型集合 438

13.3.5System.Generic.ObjectModel

命名空間 440

第14章正則表達式 443

14.1正則表達式概述 443

14.1.1基礎知識 444

14.1.2正則表達式語言 445

14.1.3正則表達式選項 450

14.2正則表達式類型 453

14.2.1Regex類型 453

14.2.2MatchCollection和Match

類型 458

14.2.3Group類型 458

14.2.4CaptureCollection和

Capture類型 459

14.3正則表達式套用 460

14.3.1常見Regex模式 460

14.3.2查找單詞和帶引號的

字元串 463

14.3.3驗證字元串、數字和

日期的有效性 465

14.3.4查找嵌套標記 467

14.3.5分析數據檔案 468

14.3.6分析和計算表達式 470

14.3.7分析代碼 472

14.3.8使用正則表達式 474

第15章檔案、目錄和流 476

15.1Path類型 477

15.2Directory和File類型 478

15.2.1列舉目錄和檔案 478

15.2.2管理目錄和檔案 479

15.2.3讀取和寫入檔案 481

15.3DirectoryInfo和FileInfo類型 482

15.4DriveInfo類型 484

15.5FileSystemWatcher類型 485

15.5.1初始化FileSystemWatcher

組件 485

15.5.2獲得通知 486

15.5.3疑難解答 488

15.6處理訪問控制列表 489

15.6.1帳戶名稱和安全標識符 489

15.6.2DirectorySecurity和

FileSecurity類型 490

15.6.3修改ACL 494

15.7Stream類型 495

15.7.1流操作 495

15.7.2流式閱讀器和流式編寫器 496

15.7.3讀取和寫入文本檔案 497

15.7.4讀取和寫入二進制檔案 500

15.7.5處理定長和分隔數據檔案 501

15.8其他Stream類型 503

15.8.1記憶體流 503

15.8.2基於字元串的流 504

15.8.3網路流 505

15.8.4緩衝流 508

15.8.5壓縮流 508

第16章My命名空間 511

16.1My命名空間概述 512

16.1.1My.Application對象 512

16.1.2My.Computer對象 518

16.1.3My.User對象 531

16.1.4My.Resources對象 532

16.1.5My.Settings對象 535

16.1.6My.Forms和My.WebServices對象 541

16.2擴展和自定義My命名空間 542

16.2.1添加頂級對象 542

16.2.2擴展My.Application和My.Computer 543

16.2.3擴展My.Resources 544

16.2.4擴展My.Settings 545

16.2.5使用編譯常量 550

第17章程式集與資源 552

17.1組件 552

17.1.1創建.NET類庫 553

17.1.2創建託管組件 554

17.2程式集 556

17.2.1私有和共享程式集 556

17.2.2強名稱 558

17.2.3在GAC中進行安裝 561

17.2.4程式集級別屬性 562

17.2.5InternalsVisibleTo屬性 563

17.3資源和附屬程式集 565

17.3.1資源清單 565

17.3.2本地化的窗體資源 566

17.3.3本地化強類型字元串資源 568

17.3.4自定義資源檔案 569

17.3.5附屬程式集 570

17.3.6附屬程式集的屬性 571

17.4綁定進程 572

17.4.1應用程式配置檔案中的版本策略 573

17.4.2預先載入的程式集及GAC查找 575

17.4.3基本代碼提示 575

17.4.4探測 576

17.4.5程式集綁定日誌查看器實用工具(FUSLOGVW) 578

17.5配置檔案 578

17.5.1設定運行庫版本 579

17.5.2.NET框架配置工具 580

17.6NGen工具 581

17.6.1使用NGen工具 582

17.6.2使用NGen服務 583

17.6.3調試本機映像 584

17.6.4NGen的屬性 585

第18章反射 589

18.1使用程式集及模組 589

18.1.1Assembly類型 590

18.1.2AssemblyName類型 594

18.1.3Module類型 595

18.2使用類型 596

18.2.1檢索Type對象 596

18.2.2探討類型成員 601

18.2.3對於泛型的反射 606

18.2.4屬性反射 610

18.2.5創建自定義對象瀏覽器 614

18.3反射示例 617

18.3.1動態創建對象 618

18.3.2訪問成員 619

18.3.3InvokeMember方法 620

18.3.4創建通用比較器 621

18.3.5事件處理程式的動態註冊 623

18.3.6安排動作序列 628

18.3.7隨時編譯 631

18.3.8性能考慮 633

18.3.9安全問題 634

第19章自定義屬性 636

19.1自定義屬性簡介 637

19.1.1構造自定義屬性類 637

19.1.2反射自定義屬性 639

19.2用於CSV序列化的自定義屬性 640

19.3構建基準測試工具 646

19.4為Windows窗體應用程式編寫外掛程式 649

19.4.1PluginLibrary項目 649

19.4.3SamplePlugin項目 655

19.5n層應用程式的框架 657

19.5.1DataObjectLibrary項目 658

19.5.2DataSets項目 664

19.5.3DemoClient項目 666

19.5.4DataObjects項目 667

第20章執行緒 675

20.1執行緒處理基礎知識 675

20.1.1何時使用執行緒 675

20.1.2創建執行緒 676

20.1.3將數據傳遞給執行緒或從中讀取數據 677

20.1.4使用執行緒 679

20.1.5執行緒屬性 680

20.1.6存儲和共享數據 682

20.1.7執行緒和未處理異常 683

20.1.8調試執行緒 685

20.2執行緒的同步 686

20.2.1SyncLock語句 687

20.2.2同步對象 689

20.2.3易變化的讀寫操作 691

20.2.4Monitor類型 692

20.2.5Mutex類型 693

20.2.6Semaphore類型 696

20.2.7ReaderWriterLock類型 697

20.2.8Interlocked類型 698

20.3使用執行緒池 702

20.3.1ThreadPool類型 702

20.3.2Timer類型 703

20.4異步操作 704

20.4.1異步委託 704

20.4.2異步檔案操作 708

20.4.3為用戶類型添加異步支持 709

20.5Windows窗體應用程式中的執行緒處理 710

20.5.1ISynchronizeInvoke接口 711

20.5.2BackgroundWorker組件 713

第21章序列化 717

21.1基本序列化 717

21.1.1二進制序列化 718

21.1.2SOAP序列化 719

21.1.3創建可序列化類型 720

21.1.4對象圖 721

21.1.5序列化和事件 722

21.1.6深層對象克隆 724

21.1.7版本容錯序列化(VTS) 725

21.2自定義序列化 726

21.2.1IDeserializationCallback接口 727

21.2.2ISerializable接口 728

21.2.3序列化和反序列化事件 733

21.2.4IObjectReference接口 734

21.2.5ISerializationSurrogate接口 736

21.2.6繼承不可序列化類型 739

第22章PInvoke和COMInterop 743

22.1使用PInvoke 744

22.1.1Declare關鍵字 744

22.1.2DllImport屬性 745

22.1.3封送數據 747

22.1.4MarshalAs屬性 748

22.1.5StructLayout屬性 749

22.1.6FieldOffset屬性 751

22.1.7委託和回調過程 753

22.1.8In和Out屬性 754

22.1.9Marshal類 756

22.2從.NET調用COM組件 758

22.2.1運行庫可調用包裝 758

22.2.2用VisualStudio導入COM組件 759

22.2.3使用所導入的Interop程式集 760

22.2.4用TlbImp導入COM組件 761

22.2.5主Interop程式集 762

22.2.6免註冊COM組件 763

22.2.7後期綁定與反射 764

22.2.8COMInterop封送處理 765

22.2.9執行緒處理問題 766

22.3從COM調用.NET對象 767

22.3.1COM可調用包裝 767

22.3.2創建示例.NET組件 768

22.3.3RegAsm與TlbExp工具 769

22.3.4轉換的詳細信息 769

22.3.5使用屬性控制轉換 770

22.3.6處理異常情況 773

22.3.7編寫COM友好的.NET框架組件 774

相關詞條

相關搜尋

熱門詞條

聯絡我們