Spații de nume globale
Dacă dorim să folosim un anumit spațiu de nume în fișierele de cod din proiect, implicit trebuie să-l conectăm în toate fișierele în care planificăm să-l folosim.
De exemplu, să presupunem că avem trei fișiere de cod în proiect:

În fișierul Base.cs este definită clasa Company în spațiul de nume Base:
namespace Base;
class Company
{
string title;
public Company(string title) => this.title = title;
public void Print() => Console.WriteLine($"Compania: {title}");
}
În fișierul Person.cs este definită clasa Person, care folosește clasa Company:
using Base;
class Person
{
string name;
Company company;
public Person(string name, Company company)
{
this.name = name;
this.company = company;
}
public void Print()
{
Console.WriteLine($"Nume: {name}");
company.Print();
}
}
Pentru a folosi clasa Company, conectăm spațiul de nume: using Base;.
În fișierul Program.cs sunt folosite clasele Person și Company:
using Base;
Company microsoft = new("Microsoft");
Person tom = new("Tom", microsoft);
tom.Print();
Din nou, pentru a folosi clasa Company, conectăm spațiul de nume: using Base;.
Și pot exista multe astfel de fișiere în care trebuie să conectăm spațiul de nume Base (sau altul). Acest lucru nu este foarte convenabil. În .NET 6 a fost introdusă conceptul de spații de nume globale, care se conectează o singură dată și imediat în toate fișierele de cod din proiect. Pentru aceasta, este suficient să scriem într-un fișier directiva:
global using conectat_spatiu_de_nume;
De exemplu, să modificăm fișierul Program.cs astfel:
global using Base;
Company microsoft = new("Microsoft");
Person tom = new("Tom", microsoft);
tom.Print();
Acum, spațiul de nume Base este conectat în toate fișierele de cod din proiect. Și din fișierul Person.cs putem elimina linia:
using Base;
Definirea spațiilor de nume globale într-un fișier separat
Totuși, abordarea de mai sus poate să nu fie foarte convenabilă, deoarece este mai simplu să definim spațiile de nume globale care se conectează în tot proiectul într-un singur loc. Pentru aceasta, în Visual Studio 2022 putem adăuga în proiect un nou fișier cu cod C# și în acesta putem defini un set de spații de nume conectate.
De exemplu, să adăugăm în proiect un fișier pe care îl numim GlobalUsings.cs și în care definim următorul conținut:
global using System.Text;
global using System.Reflection;
global using Base;
Și acest set de spații de nume va fi conectat automat în toate fișierele de cod din proiect.

