Earn More by Sharing What You Love
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Tim Corey
9m 03s
La palabra clave using en C# hace más de una cosa, y la brecha entre su forma básica y sus capacidades más nuevas es más amplia de lo que la mayoría de los desarrolladores se da cuenta. Los atajos de namespaces han existido desde el principio, las importaciones de clases estáticas llegaron en .NET 6, y .NET 8 extendió la sintaxis de alias para cubrir cualquier tipo, incluyendo tuplas. Conocer las tres formas te permite reducir las declaraciones repetitivas de tipos a un solo nombre legible en la parte superior de un archivo.
Esta guía explora cada forma de la directiva using en una aplicación de consola .NET 8, basada en la explicación de Tim Corey sobre las últimas características. Construiremos desde el atajo de espacio de nombres familiar hasta la nueva sintaxis de alias de tipo.
[0:35 - 1:35] La configuración comienza apagando los usings implícitos para que cada directiva sea claramente visible en el código. Sin ninguna declaración using en la parte superior, llamar a Console.WriteLine requiere el nombre completamente calificado: System.Console.WriteLine. Agregar una sola directiva resuelve eso:
using System;
Esa línea hace que cada tipo dentro de System esté disponible por su nombre corto. La directiva no es una importación en el sentido de biblioteca; no se agrega ningún código nuevo. Es un atajo de espacio de nombres que le dice al compilador dónde buscar cuando encuentra un nombre de tipo no calificado.
[2:19 - 2:45] La forma using static apunta a una clase estática específica en lugar de a un namespace. Apuntarlo a System.Console hace que cada miembro estático de esa clase esté disponible sin el prefijo de la clase:
using static System.Console;
WriteLine("Hello, world!");
En lugar de Console.WriteLine, llamas a WriteLine directamente. Esta forma, que llegó en .NET 6, es más útil cuando un archivo llama repetidamente a la misma clase estática. Eliminar el nombre de clase repetido reduce el ruido visual en cada punto de llamada.
[3:41 - 6:40] .NET 8 extendió la sintaxis de alias para que using pueda asignar un nombre corto a cualquier tipo. Un caso motivador es un tupla nombrada. Las tuplas son tipos de retorno comunes cuando un método necesita enviar varios valores relacionados sin una definición completa de clase, pero declarar el mismo tipo de tupla más de una vez en un archivo produce mucha repetición:
// Without an alias, each declaration repeats the full tuple type
(string FirstName, string LastName) GetUser() { ... }
(string FirstName, string LastName) person = GetUser();
Un alias de tipo colapsa eso en una sola declaración en la parte superior:
using Person = (string FirstName, string LastName);
A partir de ese punto en el archivo, Person representa la definición completa de la tupla:
Person GetUser() { ... }
Person person = GetUser();
El alias vive solo dentro del archivo donde se declara. No se propaga a través de la aplicación. Nota que si necesitas que el tipo esté disponible en todo el proyecto, una registro o clase es la opción adecuada.
[5:32 - 6:23] Surge una pregunta común: si Person parece un registro, ¿por qué no simplemente declarar uno? La respuesta se reduce a alcance y peso. Un registro o clase es un tipo nombrado que existe en todo el proyecto, tiene su propio archivo y necesita ser mantenido a medida que evoluciona la base de código. Un alias de tupla es una conveniencia local de archivo. Cuando usas una tupla de dos campos dos o tres veces dentro de un archivo de clase, crear una definición de tipo completa añade una sobrecarga de mantenimiento que el alias evita. La intención del equipo de .NET es proporcionar un gradiente de opciones en lugar de forzar una elección binaria entre una tupla cruda y una clase completa.
Las tres formas using cubren diferentes necesidades. La directiva básica de namespace acorta los nombres de tipo calificados en todo un archivo, mientras que using static elimina el prefijo de clase de las llamadas a miembros estáticos. El alias de tipo .NET 8 asigna un nombre legible a cualquier tipo, incluidas las tuplas, limitado a un solo archivo. Cada forma reduce la repetición sin cambiar el comportamiento subyacente de tu código.
Mira el video completo en el canal de YouTube de Tim Casey para una demostración en vivo de las tres formas en un proyecto .NET 8 en funcionamiento.
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!
Join our newsletter, you’ll get exclusive access on article updates. We value your privacy