A using
diretiva nos dá acesso a tipos sem usar seus nomes totalmente qualificados:
using MyNamespace.Foo.Bar;
A using
declaração atua como açúcar sintático para try
/ finally
blocks, o que garante que os objetos sejam descartados adequadamente:
using(var x = new MyDisposableClass()) { ... }
Essas duas situações parecem não ter nada a ver uma com a outra. Por que eles usam a mesma palavra-chave?
Duvido que alguém possa confundir os dois casos, mas parece estranho não criar uma nova palavra para uma nova peça de funcionalidade.
Como um aparte, eu também li sobre o uso duplo do class
C ++ (um para declarar classes e outro para definir parâmetros de modelo), mas o segundo caso acabou por ter sua própria palavra-chave typename
, o que faz mais sentido para mim.