Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C# Gedeeltelijke klasse en gedeeltelijke methode

C# Gedeeltelijke klasse en gedeeltelijke methode

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 een klasdefinitie mogelijk moet splitsen, bijvoorbeeld wanneer u aan grootschalige projecten werkt, moeten meerdere ontwikkelaars en programmeurs mogelijk tegelijkertijd aan dezelfde klas werken. In dit geval kunnen we een functie gebruiken genaamd Gedeeltelijke klasse .


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 gedeelte van de definitie van klasse en alle delen worden gecombineerd wanneer de toepassing wordt gecompileerd. Voor het splitsen van een klassedefinitie moeten we de partial . gebruiken zoekwoord.

Voorbeeld 1:

We hebben een project met de naam HeightWeightInfo die lengte en gewicht toont.

We hebben een bestand met de naam File1.cs met een gedeeltelijke klasse genaamd Record . Het heeft twee integer-variabelen h &w en een methode/constructor genaamd Record die de waarden van h . toekent &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;
        }
    }
}

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

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

Hier kunnen we nu de hoofd . zien methode van het project:

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 mijnRecord die de parameterwaarden als 10 en 15 doorgeeft aan h en w respectievelijk naar de methode gedefinieerd in File1.cs .

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

Dit toont aan dat de partial trefwoord helpt bij het combineren van alle kenmerken van een klasse die in verschillende bestanden is gedefinieerd om als een enkele klasse te werken.

Plaatsen waar partial klasse kan worden gebruikt:

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

Dingen om te onthouden over gedeeltelijke lessen

De partial trefwoord specificeert 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 zich in dezelfde naamruimte bevinden en tijdens het compileren beschikbaar zijn om het uiteindelijke type te vormen. Alle onderdelen moeten dezelfde toegangsmodifier hebben, d.w.z. privé, openbaar, enzovoort.

  • Als een deel 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 deel een basistype declareert, dan erft het hele type die klasse.
  • Elk klaslid dat in een gedeeltelijke definitie is gedeclareerd, is beschikbaar voor alle andere delen.
  • Alle delen van een gedeeltelijke klasse moeten zich in dezelfde naamruimte bevinden.

**Opmerking: De partial modifier is niet beschikbaar voor gedelegeerde of opsommingsverklaringen


Inleiding tot gedeeltelijke methoden

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

Voorbeeld 2:

Laten we een voorbeeld nemen als een gedeeltelijke klasse Car gedefinieerd in file1.cs die drie methoden heeft InitializeCar (), BuildRim () en BuildWheels (). Een van die methoden is InitializeCar is 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 file2.cs die twee methoden heeft BuildEngine en InitializeCar . De methode InitializeCar is een gedeeltelijke 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 in afzonderlijke delen van de deelklas zijn, of in hetzelfde deel.


Dingen om te onthouden over de gedeeltelijke methode

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

C Taal

  1. C# klasse en object
  2. C# abstracte klasse en methode
  3. C# verzegelde klasse en methode
  4. C++ klassen en objecten
  5. C++ vriend Functie en vriend Klassen
  6. Java - Object en klassen
  7. C# - Overerving
  8. C# - Polymorfisme
  9. ASTM A729 Klasse A dubbel genormaliseerd en gehard
  10. ASTM A649 Klasse 2 genormaliseerd en gehard
  11. ASTM A288 klasse 4 gedoofd en getemperd