Что означает частичное? - PullRequest
       1

Что означает частичное?

10 голосов
/ 05 октября 2010
public partial class Form1 : Form

Что означает частичное в этой декларации? Я понимаю, у нас есть класс Form1, который наследуется от Form. Но что значит частичное?

Ответы [ 2 ]

25 голосов
/ 05 октября 2010

Позволяет разделить определение вашего класса на два или более отдельных файла.

См. Эту статью MSDN "Определения частичного класса" для получения дополнительной информации:

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

  • При работе над большими проектами распространение класса на отдельные файлы позволяет нескольким программистам работать с ним одновременно.
  • При работе с автоматически сгенерированным исходным кодом код может быть добавлен в класс без необходимости повторного создания исходного файла. Visual Studio использует этот подход при создании форм Windows Forms, кода веб-службы и т. Д. Вы можете создать код, который использует эти классы, без необходимости редактировать файл, созданный Visual Studio.

Вы, вероятно, ссылаетесь на поведение Visual Studio по умолчанию при создании форм. Это позволяет разделить определение формы между файлом, владельцем которого является , которым вы можете управлять, и файлом, которым владеет Visual Studio (Form1.Designer.cs). Это позволяет избежать многих головных болей, которые мы наблюдали в Visual Studio 2002 и 2003, когда разработчик и IDE постоянно переступали через пальцы друг друга со своими правками.

4 голосов
/ 05 октября 2010

Это разрешает частичные определения классов в исходных файлах, которые при компиляции объединяются в один класс. В вашем случае половина кода класса автоматически генерируется генератором кода и скрывается от вас в файле с частичное объявление класса (там будет много кода). Вам предоставляется чистый лист с частичным определением класса, чтобы вы могли ввести код в это частичное определение, поэтому при компиляции автоматически сгенерированный код и ваш код объединяются в один класс, производный от класса Form. Это простой способ комбинировать машинный и мужской код в визуальных дизайнерах и т. Д., Чтобы вы не писали скучный код и просто концентрировались на том, что вам нравится делать.

...