Saltar al pie de página
Iron Academy Logo
Aprender C#
Aprender C#

Otras categorías

C# Directivas de Uso y Alias de Tipos en .NET 8

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 nuevas capacidades es más amplia de lo que la mayoría de los desarrolladores se dan cuenta. Los atajos de espacio de nombres han existido desde el principio, las importaciones de clase estática llegaron en .NET 6, y .NET 8 extendió la sintaxis de alias para cubrir cualquier tipo, incluidos los tuples. 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 el recorrido de Tim Corey de las características más recientes. Construiremos desde el atajo de espacio de nombres familiar hasta la nueva sintaxis de alias de tipo.

Punto de Partida: La Directiva Básica de Espacio de Nombres

[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;
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.

Uso de Estático: Omitiendo el Nombre de la Clase

[2:19 - 2:45] La forma using static apunta a una clase estática específica en lugar de a un espacio de nombres. 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!");
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.

Aliases de Tipo: Nombrando Cualquier Tipo

[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();
// 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);
using Person = (string FirstName, string LastName);

A partir de ese punto en adelante en el archivo, Person representa la definición completa del tuple:

Person GetUser() { ... }
Person person = GetUser();
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.

Alias vs. Registro o Clase

[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.

Conclusión

Las tres formas using cubren diferentes necesidades. La directiva básica de espacio de nombres acorta los nombres de tipo calificados en todo un archivo, mientras que using static elimina el prefijo de la 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.

Hero Worlddot related to C# Directivas de Uso y Alias de Tipos en .NET 8
Hero Affiliate related to C# Directivas de Uso y Alias de Tipos en .NET 8

Gana más compartiendo lo que te gusta

¿Creas contenidos para desarrolladores que trabajan con .NET, C#, Java, Python o Node.js? ¡Convierte tu experiencia en un ingreso extra!

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame