Seguro que estáis acostumbrados a ver y escribir las, a veces extensas, listas de directivas
using
encabezando vuestros archivos de código fuente C#. Aunque ciertamente los entornos de desarrollo actuales son de bastante ayuda a la hora de introducirlos e incluso a veces nos permiten colapsarlos, son unos grandes consumidores del valioso espacio vertical de nuestros monitores:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// ... (muchos using más)
namespace MyApplication
{
public class MyClass
{
...
}
}
Pero si habéis trabajado con Razor, ya sea para crear vistas MVC/Razor Pages o bien desde Blazor, seguro que os habrán encantado los archivos tipo _ViewImports.cshtml
o _Imports.razor
, pues permiten introducir directivas que se apliquen a todos los archivos Razor del proyecto.
¿No sería buena idea llevar esto mismo a nivel del lenguaje?
Pues sí que lo es, y de hecho es una de las útiles características que han sido introducidas en C# 10, disponible a partir de la llegada de .NET 6. A partir de esta versión, es posible utilizar la directiva global using
para referenciar namespaces en un único punto del código, evitando así su introducción en el resto del proyecto.
Para utilizar esta característica, basta con insertar en el encabezado de cualquier archivo C# los using
que nos interesen que estén presentes en el resto de archivos .cs
del proyecto:
global using System;
global using System.Collections.Generic;
global using System.Linq;
global using System.Text;
global using System.Threading.Tasks;
...
Obviamente, en lugar de usar la directiva
global using
de forma descontrolada, podríamos unificarlas todas en un archivo llamado, por ejemplo,GlobalUsings.cs
en la carpeta raíz del proyecto, centralizando así su declaración.
En la práctica, la introducción de esas directivas globales será equivalente a haber introducido esas líneas en cada uno de los archivos .cs
del proyecto. De hecho, si en algún archivo individual repitiésemos uno de los using
, Visual Studio nos avisaría y nos facilitaría la eliminación de la redundancia:
Por último, es interesante saber que, además de definir using
globales desde código, podemos hacerlo usando el archivo de configuración .csproj
:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
</PropertyGroup>
<ItemGroup>
<Using Include="System" />
<Using Include="System.Text" />
<Using Include="System.Threading.Tasks" />
</ItemGroup>
</Project>
En definitiva, sin duda una buena opción para ahorrarnos pulsaciones de teclas y dejar nuestro código fuente cada vez más ligero.
Publicado en Variable not found.
Aún no hay comentarios, ¡sé el primero!
Enviar un nuevo comentario
Backlinks: