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

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

Ключевое слово internal делает тип или член видимым только в пределах одной сборки (обычно одного проекта или DLL). Сборка - это скомпилированная единица; другой проект, ссылающийся на DLL, не видит internal объявления. Для типов верхнего уровня без модификатора по умолчанию действует именно internal.

Синтаксис

internal class Имя { } internal тип поле; internal тип Метод() { }

Пример

Давайте обратимся к internal классу из другого типа в том же файле (та же сборка):

using System; internal class InnerStore { public string GetText() { return "12345"; } } class Program { static void Main() { var store = new InnerStore(); Console.WriteLine(store.GetText()); } }

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

"12345"

Пример

Давайте вызовем internal метод из соседнего класса той же сборки:

using System; class Helper { internal static void Show() { Console.WriteLine("inside"); } } class Program { static void Main() { Helper.Show(); } }

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

"inside"

Пример

Из другой сборки internal тип не виден - во втором проекте такой код не компилируется:

// Сборка A объявляет: internal class InnerStore { } // Сборка B (ссылка на A): class Client { static void Main() { var store = new InnerStore(); } }

Компилятор не найдёт InnerStore, потому что он доступен только внутри сборки A.

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

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