overhead to unused “using” declarations?
-
22-07-2019 - |
Question
I've just installed resharper and it's letting me know the namespaces i'm not actually using in each of my classes.
which lead me to the question - is there actually any overhead in leaving these, unused, using declarations in?
is it just a matter of tight code, or is there a performance hit in invoking these namespaces when i don't need to?
Solution
From The C# Team's answers to frequently asked questions:
When you add assembly references or make use of the 'using' keyword, csc.exe will ignore any assembly which you have not actually made use of in your code ... Don't [waste] your time stripping out unused '
using
' statements or assembly references from your application. The C# compiler will do so for you automatically.
You can verify that this is actually the case by calling Assembly.GetReferencedAssemblies()
; you'll see that anything that isn't used won't actually be included in the list.
The main utility in stripping out unused ones is
- It is easier to see what your code is actually using
- It will keep your Intellisense from being polluted with things that you aren't actually going to use.
OTHER TIPS
There are some performance reasons to strip down using
statements:
- VS's IntelliSense runs faster when there is less data to look through
However, note all these reasons are compile-time specific. The compiler strips unused using
s automatically.
The biggest "overhead" in unusesd using statements is understanding your code :)
Removing unused ones makes your code tidier and easier for somebody else to read and maintain.
The C# code editor in Visual Studio 2008 has a feature to remove unused using statements.
Right-click and select Organize Usings | Remove Unused Usings.