674просмотров
39.8%от подписчиков
28 августа 2025 г.
📷 ФотоScore: 741
🖥 Упрощаем код с global using Если мы хотим использовать какое-нибудь пространство имён в файлах кода в проекте, то по умолчанию нам надо его подключать во все файлы, где мы планируем его использовать. ➡️ Допустим, у нас три файла с кодом
Файл Car.cs с классом Car и интерфейсом IVehicle, всё в пространстве Vehicles:
namespace Vehicles; public class Car : IVehicle
{ public string Brand { get; } public string Model { get; } public int Year { get; } public Car(string brand, string model, int year) { Brand = brand; Model = model; Year = year; }
} public interface IVehicle
{ string Brand { get; } string Model { get; } int Year { get; }
} Файл Person.cs, в пространстве Employees, с классом Person, который использует интерфейс IVehicle:
using Vehicles; namespace Employees; public class Person
{ public string FullName { get; } public string City { get; } public IVehicle Vehicle { get; } public Person(string fullName, string city, IVehicle vehicle) { FullName = fullName; City = city; Vehicle = vehicle; }
} Файл Program.cs, в котором используются классы Car и Person:
using Employees;
using Vehicles; List<Person> taxiFleet = new(); Car car = new("KIA", "Sorento", 2025);
Person cabDriver = new("Antony John", "LA", car);
taxiFleet.Add(cabDriver); И таких файлов, где надо подключать разные пространства имён, может быть множество. Это не очень удобно. Для этого предложена концепция глобальных пространств имён, который подключаются один раз сразу во все файлы кода в проекте. Для этого нам достаточно в одном файле прописать директиву:
global using подключаемое_пространство_имён; ➡️ Глобальные пространства в отдельном файле
Добавим в проект файл, который назовём Usings.cs и определим следующее содержимое:
global using Employees;
global using Vehicles; Теперь этот набор пространств имён будет автоматически подключаться во все файлы кода в проекте. А значит из файла Person.cs можно убрать строку:
using Vehicles; А из файла Program.cs убрать строки:
using Employees;
using Vehicles; Данное преимущество позволяет делать код чище и лаконичнее + легче поддерживать проект. #Полезно