The using directive gives us access to types without using their fully-qualified names:using MyNamespace.Foo.Bar;The using statement acts as syntactic sugar for try/finally blocks which ensure that objects are disposed of properly:using(var x = new MyDisposableClass()) { ... }These two situations seem to have nothing to do with one another. Why do they use the same keyword? I doubt anyone would ever get the two cases confused, but it seems odd to not create a new word for a new piece of functionality.As an aside, I've read about the double use of class in C++ as well (one for declaring classes, one for defining template parameters), but the second case eventually got its own keyword, typename, which makes more sense to me.
Why do the using directive and using statement use the same keyword in C#?
c#;statement
You are right in that both uses of using are unrelated.However, there are several good reasons to use using in both cases.The using statement was created for .NET 1.0 and makes semantic sense (I'm using this namespace in the following code)In both cases, using makes semantic sense.  In plain English, you are using a namespace or you are using the declared disposable object.By overloading the using keyword, the language designers did not have to create another reserved word in the language.  This helps keep the language cleaner.It is possible that given their time again, the language designers may have chosen to use import for namespace declarations to disambiguate the two choices (using a disposable object came in a later version of .NET).  We will never know and it really isn't important since it's extremely clear which of the two meanings you're using due to the context.Having said all of that, don't go and litter your code with using MyNamespace.DisposableObject = DisposableObject; namespace aliases everywhere.