V tomto článku sa dozvieme, ako a prečo sa čiastočná trieda a čiastkové metódy implementujú v C #.
Existuje mnoho situácií, kedy budete musieť rozdeliť definíciu triedy, napríklad pri práci na rozsiahlych projektoch môže byť potrebné, aby na jednej triede pracovalo súčasne viac vývojárov a programátorov. V takom prípade môžeme použiť funkciu s názvom Čiastočná trieda .
Úvod do čiastočnej triedy
Počas programovania v C # (alebo OOP) môžeme definíciu triedy rozdeliť na dva alebo viac zdrojových súborov. Zdrojové súbory obsahujú časť definície triedy a pri kompilácii aplikácie sa kombinujú všetky časti. Na rozdelenie definície triedy musíme použiť partial
kľúčové slovo.
Príklad 1:
Máme projekt nazvaný ako, HeightWeightInfo
ktorý zobrazuje výšku a váhu.
Máme súbor pomenovaný ako File1.cs
čiastočná trieda pomenovaná ako Záznam. Má dve celočíselné premenné h & w a metódu / konštruktor s názvom Record, ktorý priraďuje hodnoty 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; ) ) )
Tu je ďalší súbor s názvom File2.cs s rovnakou čiastkovou triedou Record, ktorý má iba metódu PrintRecord. Táto metóda zobrazí hodnoty h & w.
namespace HeightWeightInfo ( class File2 ( ) public partial class Record ( public void PrintRecord() ( Console.WriteLine("Height:"+ h); Console.WriteLine("Weight:"+ w); ) ) )
Tu teraz vidíme hlavnú metódu projektu:
namespace HeightWeightInfo ( class Program ( static void Main(string() args) ( Record myRecord = new Record(10, 15); myRecord.PrintRecord(); Console.ReadLine(); ) ) )
Tu máme objekt triedy Record ako myRecord, ktorý odovzdáva hodnoty parametrov ako 10 a 15 do h a w príslušne k metóde definovanej v File1.cs
.
Metódu PrintRecord volá objekt myRecord, ktorý je definovaný v File2.cs
.
To ukazuje, že partial
kľúčové slovo pomáha kombinovať všetky atribúty triedy definované v rôznych súboroch a pracovať ako jedna trieda.
Miesta, kde partial
je možné vyučovať:
- Pri práci na väčších projektoch s viac ako jedným vývojárom pomáha vývojárom pracovať súčasne na rovnakej triede.
- Kódy je možné do triedy pridávať alebo upravovať bez nutnosti opätovného vytvárania zdrojových súborov, ktoré sa automaticky generujú v prostredí IDE (tj. Visual Studio).
Čo by ste si mali pamätať o čiastočnej triede
partial
Kľúčové slovo uvedené, že iné časti triedy môžu byť definované v mennom priestore. Ak sa snažíme, aby bola trieda čiastočná, je nevyhnutné použiť kľúčové slovo Partial. Všetky časti triedy by mali byť v rovnakom mennom priestore a mali by byť k dispozícii v čase kompilácie, aby vytvorili konečný typ. Všetky časti musia mať rovnaký modifikátor prístupu, tj. Súkromný, verejný atď.
- Ak je ktorákoľvek časť vyhlásená za abstraktnú, potom sa za abstraktný považuje celý jej typ.
- Ak je ktorákoľvek časť vyhlásená za zapečatenú, potom sa za zapečatený považuje celý typ.
- Ak ktorákoľvek časť deklaruje základný typ, potom celú triedu dedí táto trieda.
- Každý člen triedy deklarovaný v čiastočnej definícii je k dispozícii pre všetky ostatné časti.
- Všetky časti čiastočnej triedy by mali byť v rovnakom mennom priestore.
** Poznámka:partial
modifikátor nie je k dispozícii u delegáta alebo zoznamu vyhlásení
Úvod do čiastkových metód
Čiastočná trieda môže obsahovať čiastočnú metódu. Jedna časť triedy obsahuje podpis metódy. V tej istej alebo inej časti môže byť definovaná voliteľná implementácia. Ak implementácia nie je poskytnutá, metóda a všetky volania sa odstránia v čase kompilácie.
Príklad 2:
Zoberme si príklad ako čiastočnú triedu Car
definovanú, file1.cs
ktorá má tri metódy InitializeCar (), BuildRim () a BuildWheels (). Medzi týmito metódami je InitializeCar definovaná ako partial
.
public partial class Car ( partial void InitializeCar(); public void BuildRim() ( ) public void BuildWheels() ( ) )
A máme ďalší súbor s názvom, file2.cs
ktorý má dve metódy BuildEngine a InitializeCar. Metóda InitializeCar je čiastočná metóda, ktorá je tiež definovaná v file1.cs
.
public partial class Car ( public void BuildEngine() ( ) partial void InitializeCar() ( string str = "Car"; ) )
Čiastočné vyhlásenie o metóde sa skladá z dvoch častí:
- Definícia ako v
file1.cs
. - Implementácia ako v
file2.cs
.
Môžu byť v samostatných častiach čiastočnej triedy alebo v tej istej časti.
Na čo treba pamätať pri čiastočnej metóde
partial
kľúčové slovo.- návratový typ
void
. - implicitne
private
. - a nemôže byť
virtual
.