C # Gedeeltelijke klasse en gedeeltelijke methode (met voorbeelden)

In dit artikel gaan we leren hoe en waarom gedeeltelijke klassen en gedeeltelijke methoden worden geïmplementeerd in C #.

Er zijn veel situaties waarin u mogelijk een klassendefinitie moet splitsen, zoals wanneer u aan grootschalige projecten werkt, waarbij meerdere ontwikkelaars en programmeurs mogelijk tegelijkertijd aan dezelfde klas moeten werken. In dit geval kunnen we een functie genaamd Partial Class gebruiken .

Inleiding tot gedeeltelijke les

Tijdens het programmeren in C # (of OOP) kunnen we de definitie van een klasse over twee of meer bronbestanden verdelen. De bronbestanden bevatten een sectie van de definitie van klasse, en alle delen worden gecombineerd wanneer de applicatie wordt gecompileerd. Om een ​​klassendefinitie te splitsen, moeten we het partialtrefwoord gebruiken.

Voorbeeld 1:

We hebben een project met de naam HeightWeightInfodat lengte en gewicht laat zien.

We hebben een bestand met de naam as File1.csmet een gedeeltelijke klasse met de naam Record. Het heeft twee integer variabelen h & w en een methode / constructor genaamd Record die de waarden van h & w toekent.

 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; ) ) )

Hier is een ander bestand genaamd File2.cs met dezelfde gedeeltelijke klasse Record die alleen de methode PrintRecord heeft. Deze methode geeft de waarden van h & w weer.

 namespace HeightWeightInfo ( class File2 ( ) public partial class Record ( public void PrintRecord() ( Console.WriteLine("Height:"+ h); Console.WriteLine("Weight:"+ w); ) ) )

Hier kunnen we nu de belangrijkste methode van het project zien:

 namespace HeightWeightInfo ( class Program ( static void Main(string() args) ( Record myRecord = new Record(10, 15); myRecord.PrintRecord(); Console.ReadLine(); ) ) )

Hier hebben we het object van de klasse Record als myRecord die de parameterwaarden als 10 en 15 doorgeeft aan respectievelijk h en w aan de methode die is gedefinieerd in File1.cs.

De methode PrintRecord wordt aangeroepen door het object myRecord dat is gedefinieerd in de File2.cs.

Dit toont aan dat het partialsleutelwoord helpt om alle attributen van een klasse die in verschillende bestanden zijn gedefinieerd, te combineren om als een enkele klasse te werken.

Plaatsen waar partialles kan worden gebruikt:

  1. Terwijl het aan grotere projecten met meer dan één ontwikkelaar werkt, helpt het de ontwikkelaars om tegelijkertijd aan dezelfde klasse te werken.
  2. Codes kunnen aan de klasse worden toegevoegd of gewijzigd zonder bronbestanden opnieuw te maken die automatisch worden gegenereerd door de IDE (bijv. Visual Studio).

Dingen om te onthouden over Gedeeltelijke Klasse

Het partialsleutelwoord geeft aan dat andere delen van de klasse kunnen worden gedefinieerd in de naamruimte. Het is verplicht om het gedeeltelijke sleutelwoord te gebruiken als we proberen een klasse gedeeltelijk te maken. Alle delen van de klasse moeten in dezelfde naamruimte staan ​​en beschikbaar zijn tijdens het compileren om het laatste type te vormen. Alle onderdelen moeten dezelfde toegangsmodificator hebben, dwz privé, openbaar, enzovoort.

  • Als een onderdeel abstract wordt verklaard, wordt het hele type als abstract beschouwd.
  • Als een onderdeel verzegeld wordt verklaard, wordt het hele type als verzegeld beschouwd.
  • Als een onderdeel een basistype declareert, erft het hele type die klasse.
  • Elk klaslid dat in een deeldefinitie is gedeclareerd, is beschikbaar voor alle andere delen.
  • Alle delen van een gedeeltelijke klasse moeten zich in dezelfde naamruimte bevinden.

** Opmerking: de partialmodifier is niet beschikbaar voor gedelegeerde of opsommingsaangiften

Introductie tot gedeeltelijke methoden

Een deelklasse kan een deelmethode bevatten. Een deel van de klasse bevat de handtekening van de methode. Een optionele implementatie kan worden gedefinieerd in hetzelfde onderdeel of in een ander onderdeel. Als de implementatie niet wordt geleverd, worden de methode en alle aanroepen verwijderd tijdens het compileren.

Voorbeeld 2:

Laten we een voorbeeld nemen als een gedeeltelijke klasse die is Cargedefinieerd file1.csmet drie methoden InitializeCar (), BuildRim () en BuildWheels (). Onder deze methoden wordt InitializeCar gedefinieerd als partial.

 public partial class Car ( partial void InitializeCar(); public void BuildRim() ( ) public void BuildWheels() ( ) )

En we hebben nog een bestand met de naam as file2.csdat twee methoden heeft BuildEngine en InitializeCar. De methode InitializeCar is een partiële methode die ook is gedefinieerd in file1.cs.

 public partial class Car ( public void BuildEngine() ( ) partial void InitializeCar() ( string str = "Car"; ) )

Een gedeeltelijke methodedeclaratie bestaat uit twee delen:

  1. De definitie zoals in file1.cs.
  2. De implementatie zoals in file2.cs.

Ze kunnen zich in afzonderlijke delen van de deelklasse bevinden of in hetzelfde deel.

Dingen om te onthouden over gedeeltelijke methode

  • partial trefwoord.
  • retourtype void .
  • impliciet private.
  • en kan niet zijn virtual.

Interessante artikelen...