I den här artikeln ska vi lära oss mer om hur och varför partiell klass och partiella metoder implementeras i C #.
Det finns många situationer när du kan behöva dela en klassdefinition, till exempel när du arbetar med stora projekt kan flera utvecklare och programmerare behöva arbeta på samma klass samtidigt. I det här fallet kan vi använda en funktion som heter Partial Class .
Introduktion till partiell klass
Under programmering i C # (eller OOP) kan vi dela definitionen av en klass över två eller flera källfiler. Källfilerna innehåller ett avsnitt av definitionen av klass, och alla delar kombineras när applikationen kompileras. För att dela en klassdefinition måste vi använda partial
nyckelordet.
Exempel 1:
Vi har ett projekt som heter som HeightWeightInfo
visar längd och vikt.
Vi har en fil som heter som File1.cs
med en delklass som heter Record. Den har två heltalsvariabler h & w och en metod / konstruktör som heter Record som tilldelar värdena för 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; ) ) )
Här är en annan fil med namnet File2.cs med samma partiklass Record som endast har metoden PrintRecord. Denna metod visar värdena för h & w.
namespace HeightWeightInfo ( class File2 ( ) public partial class Record ( public void PrintRecord() ( Console.WriteLine("Height:"+ h); Console.WriteLine("Weight:"+ w); ) ) )
Här kan vi nu se projektets huvudmetod:
namespace HeightWeightInfo ( class Program ( static void Main(string() args) ( Record myRecord = new Record(10, 15); myRecord.PrintRecord(); Console.ReadLine(); ) ) )
Här har vi föremålet för klassen Record som myRecord som skickar parametervärdena 10 respektive 15 till h respektive w till metoden som definieras i File1.cs
.
Metoden PrintRecord anropas av objektet myRecord som definieras i File2.cs
.
Detta visar att partial
nyckelordet hjälper till att kombinera alla attribut för en klass definierad i olika filer för att fungera som en enda klass.
Platser där partial
klassen kan användas:
- Medan de arbetar på större projekt med mer än en utvecklare hjälper det utvecklarna att arbeta på samma klass samtidigt.
- Koder kan läggas till eller ändras till klassen utan att skapa källfiler som automatiskt genereras av IDE (dvs. Visual Studio).
Saker att komma ihåg om partiell klass
Den partial
nyckelordet anger att andra delar av klassen kan definieras i namnområdet. Det är obligatoriskt att använda det partiella nyckelordet om vi försöker göra en klass delvis. Alla delar av klassen bör vara i samma namnområde och vara tillgängliga vid sammanställningstidpunkten för att bilda den slutliga typen. Alla delar måste ha samma åtkomstmodifierare, dvs privata, offentliga eller så vidare.
- Om någon del förklaras abstrakt, anses hela typen vara abstrakt.
- Om någon del förklaras förseglad, anses hela typen vara förseglad.
- Om någon del förklarar en bastyp ärver den hela klassen.
- Alla klassmedlemmar som deklarerats i en partiell definition är tillgängliga för alla andra delar.
- Alla delar av en delklass ska ha samma namnområde.
** Obs: Det partial
modifierings är inte tillgänglig på delegerar eller uppräkningsdeklarationer
Intraktion till partiella metoder
En partiell klass kan innehålla en partiell metod. En del av klassen innehåller metodens signatur. En valfri implementering kan definieras i samma del eller annan del. Om implementeringen inte levereras tas metoden och alla samtal bort vid kompileringen.
Exempel 2:
Låt oss ta ett exempel som en partiell klass Car
definieras i file1.cs
som har tre metoder InitializeCar (), BuildRim () och BuildWheels (). Bland dessa metoder definieras InitializeCar som partial
.
public partial class Car ( partial void InitializeCar(); public void BuildRim() ( ) public void BuildWheels() ( ) )
Och vi har en annan fil med namnet som file2.cs
har två metoder BuildEngine och InitializeCar. Metoden InitializeCar är partiell metod som också definieras i file1.cs
.
public partial class Car ( public void BuildEngine() ( ) partial void InitializeCar() ( string str = "Car"; ) )
En partiell metoddeklaration består av två delar:
- Definitionen som i
file1.cs
. - Genomförandet som i
file2.cs
.
De kan finnas i separata delar av delklassen eller i samma del.
Saker att komma ihåg om partiell metod
partial
nyckelord.- returtyp
void
. - implicit
private
. - och kan inte vara
virtual
.