← Все вопросы

Что такое namespace System и как работает using в C#?

Задан 18 месяцев назад301 просмотров2 ответа
8

В каждом примере на C# вверху написано using System;. Что это значит? Что за System и что вообще такое namespace? Если убрать эту строку — почему всё ломается?

2 ответа

14
✓ Принятый ответ — помог автору

Namespace (пространство имён) — это способ сгруппировать классы и избежать конфликтов имён. Например, System.Console, System.DateTime, System.Collections.Generic.List<T> — все они лежат внутри пространства System и его подпространств.

using System; не «подключает библиотеку» в смысле загрузки — он просто говорит компилятору: «когда видишь Console, ищи его в System». Без этой строки придётся писать полное имя:

System.Console.WriteLine("Привет");

А с using — коротко:

using System;

Console.WriteLine("Привет");

В современных проектах (.NET 6+) есть implicit usings — самые ходовые пространства (System, System.Collections.Generic, System.Linq и др.) подключаются автоматически, поэтому в новых шаблонах вы можете не видеть using System; вовсе. Это включается в .csproj:

<ImplicitUsings>enable</ImplicitUsings>

Важно не путать: using System; (директива в начале файла) и using (var x = ...) (блок освобождения ресурсов) — это два совершенно разных using, просто одно ключевое слово.

5

Можно провести аналогию с папками и файлами. Namespace — это «папка», класс — «файл». using System; — это как добавить папку в список мест, где искать, чтобы каждый раз не писать полный путь. Свои namespace вы тоже создаёте сами: обычно по имени проекта, например namespace MyApp.Models { ... }.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект