Empecé a aprender C#/.NET/VisualStudio (2022) y tengo este extraño problema; todos los métodos/clases en System y sus espacios de nombres anidados parecen estar disponibles sin ruta completa o utilizando directivas al principio.
Por ejemplo, el siguiente ejemplo se compila muy bien:
// Program.cs namespace MyApp { internal class Program { static void Main() { Console.WriteLine("Hello World!"); //System.Console } static HttpClient client = new HttpClient(); //System.Net.Http.HttpClient } }¿Por qué sucede esto y puedo deshabilitar este comportamiento de alguna manera?
Si está utilizando .NET 6, es probable que esto se deba a una nueva función llamada "Usos implícitos". Dependiendo de su tipo de proyecto, ciertos espacios de nombres se incluyen automáticamente. Por ejemplo, la plantilla de la aplicación de consola predeterminada incluye implícitamente los siguientes espacios de nombres:
Puede deshabilitar esta función al incluir lo siguiente en su archivo de proyecto:
<PropertyGroup> <ImplicitUsings>disable</ImplicitUsings> </PropertyGroup>Hay más documentación sobre esta función y "Usos globales" en esta documentación de Microsoft.
Está utilizando usos globales implícitos . Cambie las líneas en sus archivos .csproj de
<ImplicitUsings>enable</ImplicitUsings>para
<ImplicitUsings>disable</ImplicitUsings>