Частичный класс C# и частичный метод
Частичный класс C# и частичный метод
В этой статье мы узнаем, как и почему разделяемый класс и разделяемые методы реализуются в C#.
Во многих ситуациях вам может понадобиться разделить определение класса, например, при работе над крупномасштабными проектами нескольким разработчикам и программистам может потребоваться работать над одним и тем же классом одновременно. В этом случае мы можем использовать функцию под названием Частичный класс. .
<час>Введение в неполный класс
При программировании на C# (или ООП) мы можем разделить определение класса на два или более исходных файла. Исходные файлы содержат раздел определения класса, и все части объединяются при компиляции приложения. Для разделения определения класса нам нужно использовать partial
ключевое слово.
Пример 1:
У нас есть проект с именем HeightWeightInfo
который показывает рост и вес.
У нас есть файл с именем File1.cs
с частичным классом с именем Record . Он имеет две целочисленные переменные h &в и метод/конструктор с именем Record который присваивает значения h &в .
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 &в .
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 как моя запись который передает значения параметров как 10 и 15 в h и w соответственно методу, определенному в File1.cs
.
Метод PrintRecord вызывается объектом myRecord который определен в File2.cs
.
Это показывает, что partial
ключевое слово помогает объединить все атрибуты класса, определенные в различных файлах, для работы в качестве единого класса.
Места, где partial
можно использовать класс:
- При работе над большими проектами с несколькими разработчиками это помогает разработчикам одновременно работать над одним и тем же классом.
- Коды можно добавлять или изменять в классе без повторного создания исходных файлов, которые автоматически создаются интегрированной средой разработки (например, 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() { }
}
И у нас есть еще один файл с именем file2.cs
. который имеет два метода BuildEngine и Инициализироватьавтомобиль . Метод InitializeCar частичный метод, который также определен в file1.cs
.
public partial class Car
{
public void BuildEngine() { }
partial void InitializeCar()
{
string str = "Car";
}
}
Объявление разделяемого метода состоит из двух частей:
- Определение как в
file1.cs
. - Реализация как в
file2.cs
.
Они могут находиться в разных частях разделяемого класса или в одной части.
<час>Что следует помнить о частичном методе
partial
ключевое слово.- тип возвращаемого значения
void
. - неявно
private
. - и не может быть
virtual
.
Язык C
- Класс и объект С#
- Абстрактный класс и метод С#
- Запечатанный класс и метод С#
- Классы и объекты С++
- Дружественные функции C++ и дружественные классы
- Java — объект и классы
- С# — Наследование
- С# — полиморфизм
- ASTM A729, класс A, двойная нормализованная и закаленная
- ASTM A649, класс 2, нормализованная и закаленная