Частичные классы и модификация доступа

Согласно Документация MSDN для частичных классов:

Все части должны иметь такую ​​же доступность, как общедоступный, закрытый и т.д.

но если вы создаете приложение WindowsForm, у вас будет класс по умолчанию Form в двух частичных классах.

Код позади:

public partial class Form1 : Form
{
    ...
}

и конструктор:

partial class Form1
{
    ...
}

Модификаторы доступа разные, но они будут скомпилированы.

Я что-то пропустил?

Ответы

Ответ 1

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


Соответствующая часть из спецификации С# 5: §10.2.2

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

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