移除未使用的 Using
Visual Studio 使用者介面中的 [移除未使用的 Using] 選項會移除未在原始程式碼中使用的 using 指示詞、using 別名 (Alias) 及 extern 別名。有兩種方式可以呼叫此作業:
主功能表:在 [編輯] 功能表中,依序指向 [IntelliSense]、[組合管理 Using],然後按一下 [移除未使用的 Using]。
內容功能表:以滑鼠右鍵按一下程式碼編輯器內的任何位置,指向 [組合管理Using],然後按一下 [移除未使用的 Using]。
注意事項 如果您對未建置 (Build) 的原始程式碼執行 [移除未使用的 Using],則可能會移除一些必要的 using 指示詞。
下列範例會示範對原始程式碼執行 [移除未使用的 Using] 的結果。
執行前 |
執行後 |
---|---|
|
|
在上述範例中,只有 System 稍後會在原始程式碼中使用。其他 using 指示詞,包括重複的 System using 指示詞,則都會移除。
備註
條件式前置處理器指示詞
[移除未使用的 Using] 只會移除在現用區塊中未使用的指示詞和別名。下列範例會說明這項行為:
執行前 |
執行後 |
---|---|
#define DEBUG #if DEBUG using System; using System.Collections.Generic; using System.Linq; #else using System.Text; #endif namespace ConsoleApplication1 { class Program { static void Main(string[] args) { List<int> myList = new List<int> { 1, 2, 3 }; Console.WriteLine(myList); } } } |
#define DEBUG #if DEBUG using System; using System.Collections.Generic; #else using System.Text; #endif namespace ConsoleApplication1 { class Program { static void Main(string[] args) { List<int> myList = new List<int> { 1, 2, 3 }; Console.WriteLine(myList); } } } |
在上述範例中,都沒有使用 System.Text 和 System.Linq。然而,因為 System.Text 不在現用區塊中,只會移除 System.Linq。
註解
如果有註解在將要移除之指示詞或別名的語彙基元 (Token) 之間,[移除未使用的 Using] 才會移除註解。出現在之前或之後的註解都不會受到影響。下列範例會說明這項行為:
執行前 |
執行後 |
---|---|
using System; /* Comment before remains */ using /* Comment between removed */ System.Linq; // Comment after remains namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("My Example"); } } } |
using System; /* Comment before remains */ // Comment after remains namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("My Example"); } } } |
在上述範例中,System.Linq 會遭到移除。只有在指示詞的語彙基元之間的註解才會加以移除。