Видимость по умолчанию для классов и членов C# (поля, методы и т. д.)?



Я пытаюсь найти ссылку для видимости по умолчанию различных аспектов C#. Типы классов, полей, методов, перечислений и т. д.



может ли кто-нибудь предоставить список этих элементов вместе с их видимостью по умолчанию (т. е. без префиксного модификатора)?

281   4  
c#

4 ответов:

вся информация, которую вы ищете, можно найти здесь и здесь (спасибо Рид Copsey):

из первой ссылки:

классы и структуры, объявленные непосредственно в пространстве имен (другими словами, не вложенные в другие классы или структуры) могут быть открытыми или внутренними. Внутренняя по умолчанию, если модификатор доступа не указан.

...

уровень доступа для члены класса и члены структуры, включая вложенные классы и структуры, составляет по умолчанию.

...

интерфейсы по умолчанию внутренние открыть.

...

представители ведут себя как классы и структуры. По умолчанию они имеют внутренний доступ при объявлении непосредственно в пространстве имен и частный доступ при вложенном.


из второй ссылки:

топ-уровня типа, которые не вложены в другие типы, могут иметь только внутренний или общедоступный доступ. Элемент доступность по умолчанию для этих типов внутренней.

и для вложенных типов:

Members of    Default member accessibility
----------    ----------------------------
enum          public
class         private
interface     public
struct        private

от MSDN:

топ-уровня типа, которые не вложены в другие типы, может быть только internal или public доступность. Доступность по умолчанию для этих типов internal.


вложенные типы, которые являются членами других типов, могут иметь объявленные возможности, как указано в следующей таблице.

Default Nested Member Accessibility & Allowed Accessibility Modifiers

источник: Уровни Доступности (C# Ссылка) (6 декабряе 2017,)

по умолчанию модификатор доступа для класса internal. Это означает, что класс доступен в той же сборке. Но если мы хотим, чтобы класс был доступен из других сборок, то он должен быть обнародован.

по умолчанию private. Если они не являются вложенными, классы internal.

Comments

    Ничего не найдено.