Ebben a cikkben megtudjuk, hogyan és miért lehet a részleges osztályokat és a részleges módszereket megvalósítani a C # nyelven.
Sok helyzetben előfordulhat, hogy szét kell osztani egy osztálydefiníciót, például nagyszabású projekteknél több fejlesztőnek és programozónak kell dolgoznia ugyanazon az osztályon egyszerre. Ebben az esetben használhatjuk a Partial Class nevű funkciót .
Bevezetés a részleges osztályba
A C # (vagy OOP) programozás során feloszthatjuk az osztály definícióját két vagy több forrásfájlra. A forrásfájlok tartalmazzák az osztály definíciójának egy szakaszát, és az alkalmazás összeállításakor az összes részt egyesítik. Az osztálydefiníció felosztásához a partial
kulcsszót kell használnunk .
1. példa:
Van egy projektünk, HeightWeightInfo
amelynek neve magasság és súly.
Van egy fájlunk, File1.cs
amelynek neve egy részleges osztály, amelynek neve Record. Két egész h & w változóval és egy Record nevű módszerrel / konstruktorral rendelkezik, amely hozzárendeli a h & w értékeit.
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; ) ) )
Itt van egy másik File2.cs nevű fájl, ugyanazzal a részleges osztályrekorddal, amelynek csak a PrintRecord metódusa van. Ez a módszer a h & w értékeit jeleníti meg.
namespace HeightWeightInfo ( class File2 ( ) public partial class Record ( public void PrintRecord() ( Console.WriteLine("Height:"+ h); Console.WriteLine("Weight:"+ w); ) ) )
Itt láthatjuk a projekt fő módszerét:
namespace HeightWeightInfo ( class Program ( static void Main(string() args) ( Record myRecord = new Record(10, 15); myRecord.PrintRecord(); Console.ReadLine(); ) ) )
Itt van a Record osztály objektuma, mint myRecord, amely a 10-es és 15-ös paraméterértékeket átadja h-nek, illetve w-nek a metódusban definiált módszernek File1.cs
.
A PrintRecord metódust a. Fájlban definiált myRecord objektum hívja meg File2.cs
.
Ez azt mutatja, hogy a partial
kulcsszó segít a különféle fájlokban definiált osztály összes attribútumának egyesítésében, hogy egyetlen osztályként működjenek.
Helyek, ahol az partial
osztály használható:
- Miközben egy nagyobb projektnél több fejlesztővel dolgozik, ez segíti a fejlesztőket abban, hogy egyazon osztályon dolgozzanak.
- A kódok hozzáadhatók vagy módosíthatók az osztályhoz anélkül, hogy újra létrehoznák az IDE által automatikusan generált forrásfájlokat (pl. Visual Studio).
Emlékezetes dolgok a részleges osztályról
A partial
kulcsszó megadja, hogy az osztály más részei megadhatók a névtérben. Kötelező használni a részleges kulcsszót, ha egy osztályt próbálunk részlegesé tenni. Az osztály minden részének ugyanabban a névtérben kell lennie, és fordításkor rendelkezésre kell állnia a végleges típus kialakításához. Valamennyi alkatrésznek azonos hozzáférés-módosítóval kell rendelkeznie, azaz privát, nyilvános stb.
- Ha valamelyik részt absztraktnak nyilvánítjuk, akkor az egész típust absztraktnak tekintjük.
- Ha valamelyik részt lezártnak nyilvánítják, akkor az egész típust lezártnak tekintik.
- Ha bármelyik rész deklarál egy alaptípust, akkor az egész típus örökli ezt az osztályt.
- A részleges meghatározásban deklarált osztálytagok az összes többi rész számára elérhetőek.
- A részosztály összes részének ugyanabban a névtérben kell lennie.
** Megjegyzés: A partial
módosító nem áll rendelkezésre delegált vagy felsorolási nyilatkozatokban
Bevezetés a részleges módszerekbe
A részosztály tartalmazhat részleges módszert is. Az osztály egyik része tartalmazza a módszer aláírását. Opcionális megvalósítás meghatározható ugyanabban a részben vagy egy másik részben. Ha a megvalósítás nincs megadva, akkor a metódust és az összes hívást a fordításkor eltávolítjuk.
2. példa:
Vegyünk egy példát Car
definiált file1.cs
részosztályként , amelyben három metódus van: InitializeCar (), BuildRim () és BuildWheels (). E módszerek között az InitializeCar a következő partial
.
public partial class Car ( partial void InitializeCar(); public void BuildRim() ( ) public void BuildWheels() ( ) )
És van egy másik fájlunk, file2.cs
amelynek neve két módszer: BuildEngine és InitializeCar. Az InitializeCar módszer részleges módszer, amelyet a file1.cs
.
public partial class Car ( public void BuildEngine() ( ) partial void InitializeCar() ( string str = "Car"; ) )
A részleges módszer-deklaráció két részből áll:
- A meghatározás, mint a
file1.cs
. - A végrehajtás, ahogyan a
file2.cs
.
Lehetnek a részosztály külön részeiben vagy ugyanabban a részben.
A részleges módszerről emlékezetes dolgok
partial
kulcsszó.- visszatérési típus
void
. - hallgatólagosan
private
. - és nem lehet
virtual
.