La usingdirectiva nos da acceso a los tipos sin usar sus nombres completos:
using MyNamespace.Foo.Bar;
La usingdeclaración actúa como azúcar sintáctica para try/ finallybloques que aseguran que los objetos se eliminen adecuadamente:
using(var x = new MyDisposableClass()) { ... }
Estas dos situaciones parecen no tener nada que ver entre sí. ¿Por qué usan la misma palabra clave?
Dudo que alguien pueda confundir los dos casos, pero parece extraño no crear una nueva palabra para una nueva funcionalidad.
Como comentario aparte, también he leído sobre el doble uso de classen C ++ (uno para declarar clases, otro para definir parámetros de plantilla), pero el segundo caso finalmente obtuvo su propia palabra clave typename, lo que tiene más sentido para mí.

varsiendo el ejemplo clásico donde un tipo dentro del alcance llamadovartiene prioridad sobre la palabra clave.g++ --std=c++11, o permitir que los archivos de origen especifiquen un dialecto (como en Haskell (?), Racket, Perl, incluso Python). También se puede diseñar un idioma en de manera que las palabras clave no chocan con sintácticamente posibles identificadores, sin reservar algunos identificadores (aunque eso podría ser difícil para su implementación en el lenguaje de escorrentía la fábrica usando un analizador LALR con un analizador léxico delante).@usingLos diseñadores de idiomas generalmente intentan limitar la cantidad de palabras clave. Cuando se reserva una palabra clave, no se puede usar como un identificador en el código de usuario, lo cual es molesto si es solo la palabra que necesita. También es un obstáculo al portar código de otros idiomas, y Microsoft quería que las personas transfirieran código de Java a C #. C # tiene más palabras clave que Java, pero cada nueva palabra clave lo haría más difícil. Además, los idiomas .net están diseñados para interactuar con las API escritas en diferentes idiomas que pueden no tener las mismas palabras clave, lo que genera molestias si un miembro público también es una palabra clave.
Los dos usos de
usingson inequívocos, ya que aparecen en posiciones en la sintaxis, "usar" es un término apropiado en ambos casos. Por lo tanto, tiene sentido reutilizar la misma palabra clave. Observará otros ejemplos de reutilización de palabras clave, por ejemplo:newen restricciones genéricasinenforeachy en parámetros de tipo variantedefaultcomo cláusula enswitchy como operador (default(T)).fuente