Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1068 of 1492 menu
◀ ▶

Модификатор file

Ключевое слово file перед объявлением класса, структуры, интерфейса, перечисления или записи делает тип файл-локальным: его имя действует только внутри этого .cs файла. Так можно спрятать вспомогательные типы рядом с публичным API, не расширяя internal область на всю сборку.

Синтаксис

file class Имя { } file struct Имя { } file interface Имя { }

Пример

Давайте создадим file класс и используем его в Main того же файла:

using System; file class LocalBox { public string Text = "abcde"; } class Program { static void Main() { var box = new LocalBox(); Console.WriteLine(box.Text); } }

Результат выполнения кода:

"abcde"

Пример

Давайте спрячем реализацию за file типом, а наружу отдадим обычный класс:

using System; file class LocalCounter { public int Value; } class Facade { private LocalCounter inner = new LocalCounter(); public void Bump() { inner.Value++; } public void Print() { Console.WriteLine(inner.Value); } } class Program { static void Main() { var facade = new Facade(); facade.Bump(); facade.Print(); } }

Результат выполнения кода:

1

Пример

В другом файле той же сборки file тип не виден - такой код не компилируется:

// FileA.cs file class LocalBox { } // FileB.cs той же сборки: class Client { static void Main() { var box = new LocalBox(); } }

Имя LocalBox существует только в FileA.cs.

Смотрите также

  • модификатор internal,
    который виден во всей сборке
  • модификатор private,
    который скрывает члены внутри типа
  • модификатор public,
    который экспортирует тип наружу
  • метод Substring,
    который часто вызывают из вспомогательных типов
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить