В тази статия ще научим как и защо частичните класови и частични методи да бъдат внедрени в C #.
Има много ситуации, когато може да се наложи да разделите дефиниция на клас, например когато работите по мащабни проекти, може да се наложи няколко разработчици и програмисти да работят по един и същи клас едновременно. В този случай можем да използваме функция, наречена Частичен клас .
Въведение в частичен клас
Докато програмираме в C # (или OOP), можем да разделим дефиницията на клас върху два или повече изходни файла. Изходните файлове съдържат раздел от дефиницията за клас и всички части се комбинират, когато приложението се компилира. За разделяне на дефиниция на клас трябва да използваме partial
ключовата дума.
Пример 1:
Имаме проект на име, HeightWeightInfo
който показва височина и тегло.
Имаме файл с име като 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
може да се използва клас:
- Докато работи по по-големи проекти с повече от един разработчик, това помага на разработчиците да работят едновременно в един и същи клас.
- Кодовете могат да се добавят или модифицират към класа, без да се пресъздават изходни файлове, които се генерират автоматично от IDE (т.е. Visual Studio).
Неща, които трябва да запомните за частичен клас
В 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. Методът InitializeCar е частичен метод, който също е дефиниран в file1.cs
.
public partial class Car ( public void BuildEngine() ( ) partial void InitializeCar() ( string str = "Car"; ) )
Декларацията за частичен метод се състои от две части:
- Определението като в
file1.cs
. - Изпълнението както в
file2.cs
.
Те могат да бъдат в отделни части от частичния клас или в същата част.
Неща, които трябва да запомните за частичния метод
partial
ключова дума.- тип връщане
void
. - имплицитно
private
. - и не може да бъде
virtual
.