Частичный класс и частичный метод C # (с примерами)

В этой статье мы узнаем, как и почему частичные классы и частичные методы могут быть реализованы на C #.

Существует множество ситуаций, когда вам может потребоваться разделить определение класса, например, при работе над крупномасштабными проектами нескольким разработчикам и программистам может потребоваться одновременная работа над одним и тем же классом. В этом случае мы можем использовать функцию под названием Partial Class .

Введение в частичный класс

При программировании на C # (или ООП) мы можем разделить определение класса на два или более исходных файла. Исходные файлы содержат раздел определения класса, и все части объединяются при компиляции приложения. Для разделения определения класса нам нужно использовать partialключевое слово.

Пример 1:

У нас есть проект, HeightWeightInfoкоторый показывает рост и вес.

У нас есть файл с именем as File1.csс частичным классом с именем Record. Он имеет две целочисленные переменные h & w и метод / конструктор с именем Record, который присваивает значения h & w.

 namespace HeightWeightInfo ( class File1 ( ) public partial class Record ( private int h; private int w; public Record(int h, int w) ( this.h = h; this.w = w; ) ) )

Вот еще один файл с именем File2.cs с тем же частичным классом Record, который имеет только метод PrintRecord. Этот метод отобразит значения h & w.

 namespace HeightWeightInfo ( class File2 ( ) public partial class Record ( public void PrintRecord() ( Console.WriteLine("Height:"+ h); Console.WriteLine("Weight:"+ w); ) ) )

Вот теперь мы видим основной метод проекта:

 namespace HeightWeightInfo ( class Program ( static void Main(string() args) ( Record myRecord = new Record(10, 15); myRecord.PrintRecord(); Console.ReadLine(); ) ) )

Здесь у нас есть объект класса Record как myRecord, который передает значения параметров как 10 и 15 в h и w соответственно методу, определенному в File1.cs.

Метод PrintRecord вызывается объектом myRecord, который определен в File2.cs.

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

Места, где partialможно использовать класс:

  1. При работе над более крупными проектами с несколькими разработчиками это помогает разработчикам работать над одним и тем же классом одновременно.
  2. Коды могут быть добавлены или изменены в класс без повторного создания исходных файлов, которые автоматически генерируются IDE (т.е. Visual Studio).

Что нужно помнить о неполном классе

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

  • Если какая-либо часть объявлена ​​абстрактной, то весь тип считается абстрактным.
  • Если какая-либо часть объявляется опломбированной, то опломбированным считается весь тип.
  • Если какая-либо часть объявляет базовый тип, то весь тип наследует этот класс.
  • Любой член класса, объявленный в частичном определении, доступен всем остальным частям.
  • Все части частичного класса должны находиться в одном пространстве имен.

** Примечание:partial модификатор не доступен на делегат или перечисление деклараций

Введение в частичные методы

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

Пример 2:

Рассмотрим в качестве примера частичный класс, Carв file1.csкотором есть три метода InitializeCar (), BuildRim () и BuildWheels (). Среди этих методов InitializeCar определяется как partial.

 public partial class Car ( partial void InitializeCar(); public void BuildRim() ( ) public void BuildWheels() ( ) )

И у нас есть еще один файл с именем as, в file2.csкотором есть два метода BuildEngine и InitializeCar. Метод InitializeCar - это частичный метод, который также определен в file1.cs.

 public partial class Car ( public void BuildEngine() ( ) partial void InitializeCar() ( string str = "Car"; ) )

Объявление частичного метода состоит из двух частей:

  1. Определение как в file1.cs.
  2. Реализация как в file2.cs.

Они могут находиться в отдельных частях частичного класса или в одной и той же части.

Что нужно помнить о частичном методе

  • partial ключевое слово.
  • тип возврата void .
  • неявно private.
  • и не может быть virtual.

Интересные статьи...