¿Dónde o cuándo se usaría un alias de espacio de nombres como
using someOtherName = System.Timers.Timer;
Me parece que solo agregaría más confusión a la comprensión del idioma.
c#
namespaces
Puntilla
fuente
fuente
using int = System.Int32
en C #? Útil, ¿no? Es el mismo uso que se puede aprovechar en otros lugares.using int = System.Int32
y usarlo en lugares distintos al archivo de declaración. Por lo que esteint
aInt32
alias o bien puede lograrse por otros medios, o es una cosa especial en el compilador / tiempo de ejecución.using int = System.Int32
es incorrecto y engañoso; está mal porque elint
alias no está implementado de la manera que describió. Es engañoso porque implica que los alias de tipo se pueden usar globalmente, al igual que cómoint
se usaInt32
.Respuestas:
Es un alias de tipo, no un alias de espacio de nombres; es útil eliminar la ambigüedad, por ejemplo, contra:
(ps: gracias por la elección de
Timer
;-p)De lo contrario, si usa ambos
System.Windows.Forms.Timer
ySystem.Timers.Timer
en el mismo archivo, tendrá que seguir dando los nombres completos (ya queTimer
podría ser confuso).También juega un papel con los
extern
alias para usar tipos con el mismo nombre de tipo completamente calificado de diferentes ensamblajes; poco común, pero útil para ser compatible.En realidad, puedo ver otro uso: cuando desea acceso rápido a un tipo, pero no desea usar un tipo regular
using
porque no puede importar algunos métodos de extensión en conflicto ... un poco complicado, pero ... aquí hay un ejemplo ...fuente
System.Timers.Timer
;-pLo uso cuando tengo varios espacios de nombres con subespacios de nombres y / o nombres de objetos en conflicto, podría hacer algo como [como ejemplo]:
Que de lo contrario tendría que escribirse:
Ahorra un montón de escritura y se puede usar para hacer que el código sea mucho más fácil de leer.
fuente
Además de los ejemplos mencionados, los alias de tipos (en lugar de los alias de espacios de nombres) pueden ser útiles cuando se hace referencia repetidamente a tipos genéricos:
Versus:
fuente
Brevedad.
Hay beneficios adicionales para proporcionar claridad entre los espacios de nombres que comparten nombres de tipos, pero esencialmente es solo azúcar.
fuente
Siempre lo uso en situaciones como esta
donde de
Utility
lo contrario tendría un contexto diferente (comoMyBaseNamespace.MySubNamespace.MySubSubNamespace.Utility
), pero espero / prefieroUtility
apuntar siempre a esa clase en particular.fuente
Es muy útil cuando tiene varias clases con el mismo nombre en varios espacios de nombres incluidos. Por ejemplo...
Puede usar alias para hacer feliz al compilador y dejar las cosas más claras para usted y otros miembros de su equipo:
fuente
Hemos definido alias de espacios de nombres para todos nuestros espacios de nombres. Esto hace que sea muy fácil ver de dónde viene una clase, por ejemplo:
y
Hemos definido algunas pautas sobre cómo se deben nombrar los alias y cómo todos los están usando.
fuente
Encuentro los alias muy útiles en las pruebas unitarias. Cuando está escribiendo pruebas unitarias, es una práctica común declarar la materia a evaluar como
siendo
myClassUT
el sujeto U nder T est. Pero, ¿qué pasa si quieres escribir pruebas unitarias para una clase estática con métodos estáticos? Entonces puedes crear un alias como este:Entonces puedes escribir tus pruebas unitarias así:
y nunca pierdes de vista cuál es el tema bajo prueba.
fuente
En cierto modo, es muy útil al codificar en Visual Studio.
Caso de uso : digamos que tengo que usar solo unas pocas clases, por ejemplo,
SqlConnection
de un espacio de nombresSystem.Data
. En el curso normal, importaré elSystem.Data.SqlClient
espacio de nombres en la parte superior del archivo * .cs como se muestra a continuación:Ahora mira mi intellisense. Está muy proliferado con una gran cantidad de clases para elegir mientras escribe en el editor de código. No voy a usar un montón de clases en absoluto:
Entonces prefiero usar un alias en la parte superior de mi archivo * .cs y obtener una vista clara de intellisense:
Ahora mira mi vista intellisense. Es superclaro y superlimpio.
fuente
Una razón por la que sé; Le permite usar nombres más cortos cuando tiene colisiones de nombres de espacios de nombres importados. Ejemplo:
Si declaró
using System.Windows.Forms;
yusing System.Windows.Input;
en el mismo archivo cuando accede a accederModifierKeys
, puede encontrar que el nombreModifierKeys
está en los espacios de nombresSystem.Windows.Forms.Control
ySystem.Windows.Input
. Entonces, al declararusing Input = System.Windows.Input;
que puede obtenerSystem.Windows.Input.ModifierKeys
viaInput.ModifierKeys
.No soy un aficionado a C #, pero crear un alias en el espacio de nombres me parece la "mejor práctica". De esa manera, sabrá lo que obtiene y aún así no tendrá que escribir mucho más.
fuente
Puede usarlos para modificar un código muy fácilmente.
Por ejemplo:
Con el simple cambio de la directiva, puede decidir si todo su código funciona en
float
odouble
.fuente