Видимость по умолчанию для классов и членов C# (поля, методы и т. д.)?
Я пытаюсь найти ссылку для видимости по умолчанию различных аспектов C#. Типы классов, полей, методов, перечислений и т. д.
может ли кто-нибудь предоставить список этих элементов вместе с их видимостью по умолчанию (т. е. без префиксного модификатора)?
4 ответов:
вся информация, которую вы ищете, можно найти здесь и здесь (спасибо Рид Copsey):
из первой ссылки:
классы и структуры, объявленные непосредственно в пространстве имен (другими словами, не вложенные в другие классы или структуры) могут быть открытыми или внутренними. Внутренняя по умолчанию, если модификатор доступа не указан.
...
уровень доступа для члены класса и члены структуры, включая вложенные классы и структуры, составляет по умолчанию.
...
интерфейсы по умолчанию внутренние открыть.
...
представители ведут себя как классы и структуры. По умолчанию они имеют внутренний доступ при объявлении непосредственно в пространстве имен и частный доступ при вложенном.
из второй ссылки:
топ-уровня типа, которые не вложены в другие типы, могут иметь только внутренний или общедоступный доступ. Элемент доступность по умолчанию для этих типов внутренней.
и для вложенных типов:
Members of Default member accessibility ---------- ---------------------------- enum public class private interface public struct private
от MSDN:
топ-уровня типа, которые не вложены в другие типы, может быть только
internalилиpublicдоступность. Доступность по умолчанию для этих типовinternal.
вложенные типы, которые являются членами других типов, могут иметь объявленные возможности, как указано в следующей таблице.
источник: Уровни Доступности (C# Ссылка) (6 декабряе 2017,)
по умолчанию модификатор доступа для класса
internal. Это означает, что класс доступен в той же сборке. Но если мы хотим, чтобы класс был доступен из других сборок, то он должен быть обнародован.

Comments