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?

Was it helpful?

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 usings 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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top