Visual Studio 2005 內建的巨集引擎讓開發者能撰寫自動化程式碼產生器,配合設計模式與重構原則,產出可讀、可維護的高品質程式碼。本文示範如何為 VB.NET 專案建立「封裝欄位」重構巨集,彌補 VB.NET 早期版本缺乏重構選單的不足。
重構是在不改變外部行為前提下,改善程式碼結構。封裝欄位 將 Public 欄位改為 Private,並提供 Property 存取器,強制存取邏輯集中化,提升封裝性與維護性。
Private。_fieldName)避免與 Property 衝突。Get/Set Property 程式碼。啟動「巨集錄製器」手動完成上述動作,再檢視產生的巨集碼,進而重構為通用函式。核心 API 包含 DTE、TextSelection、CodeModel 等,可操作專案項目、程式碼元素與文字編輯器。
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Public Module EncapsulateFieldMacro
Sub EncapsulateField()
Dim sel As TextSelection = DTE.ActiveDocument.Selection
' 1. 取得選取的程式碼元素
' 2. 驗證為 Field
' 3. 修改修飾詞、重命名
' 4. 插入 Property 程式碼
End Sub
End Module
將巨集加入工具列或指派熱鍵,即可一鍵完成重構,節省大量重複勞動。