24
loading...
This website collects cookies to deliver better user experience
using
ci ha permesso di semplificare la scrittura del nostro codice facendo sì di poter scrivere le istruzioni in maniera "abbreviata", senza il bisogno di dover digitare tutte le volte per intero i nomi degli oggetti (che siano classi, strutture, pagine, form, ecc.) comprensivi di namespace. Fino alla versione 9 di C# però, la dichiarazione dei namespace, era relativa al singolo file .cs e, specialmente nei grandi progetti, questo può generare un po' di confusione dal punto di vista della manutenibilità. Infatti, in ogni file bisogna sempre ripetere la dichiarazione di tutti i namespace necessari (vi lascio immaginare un progetto composto da molti file .cs dove magari ad un certo punto si deve modificare o rimuovere la dichiarazione di uno o più namespace).global
alla dichiarazione del namespace. Vediamo un esempio.global using System;
global using System.IO;
System
e System.IO
accessibili in tutta l'applicazione.global
anche con gli alias e gli using statici. Vediamo un altro esempio.global using static System.Console;
global using static System.Math;
using System;
namespace Santoni1981.HelloWorldCSharpDemo
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}
using System;
namespace Santoni1981.HelloWorldCSharpDemo;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
System
, sarà possibile scrivere Console.WriteLine("Hello world");
senza ricevere errori di compilazione.ImplicitUsings
a enable
.<PropertyGroup>
<!-- Altre proprietà -->
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
SDK | Namespace impliciti |
---|---|
Microsoft.NET.Sdk |
System • System.Collections.Generic • System.IO • System.Linq • System.Net.Http • System.Threading • System.Threading.Tasks
|
Microsoft.NET.Sdk.Web |
System.Net.Http.Json • Microsoft.AspNetCore.Builder • Microsoft.AspNetCore.Hosting • Microsoft.AspNetCore.Http • Microsoft.AspNetCore.Routing • Microsoft.Extensions.Configuration • Microsoft.Extensions.DependencyInjection • Microsoft.Extensions.Hosting • Microsoft.Extensions.Logging
|
Microsoft.NET.Sdk.Worker |
Microsoft.Extensions.Configuration • Microsoft.Extensions.DependencyInjection • Microsoft.Extensions.Hosting • Microsoft.Extensions.Logging
|
Microsoft.NET.Sdk.WindowsDesktop (Windows Forms) |
Tutti i namespace di Microsoft.NET.Sdk • System.Drawing • System.Windows.Forms
|
Microsoft.NET.Sdk.WindowsDesktop (WPF) |
Tutti i namespace di Microsoft.NET.Sdk eccetto System.IO e System.Net.Http
|
<ItemGroup>
<Using Include="System.IO.Pipes" />
</ItemGroup>
<ItemGroup>
<Using Remove="System.Threading.Tasks" />
</ItemGroup>