Inleiding tot recordtypen in C# met voorbeelden

Inleiding Tot Recordtypen In C Met Voorbeelden



Recordtypen zijn een nieuwe functie die is geïntroduceerd in C# 9 en die een vereenvoudigde syntaxis biedt voor het maken van klassen die voornamelijk worden gebruikt om gegevens op te slaan. Een recordtype is een klasse die een set eigenschappen definieert om gegevens te bevatten, maar ook andere functies bevat, zoals gelijkheidsvergelijking, hashing en meer. Dit artikel introduceert het concept van recordtypen in C# en onderzoekt hun voordelen en beperkingen.

Wat is de behoefte aan recordtype

Een van de belangrijkste voordelen van het gebruik van recordtypen is dat ze een beknoptere syntaxis bieden voor het definiëren van klassen die alleen gegevens bevatten. Dit maakt de code gemakkelijker te lezen en te begrijpen, terwijl ook de hoeveelheid code die moet worden geschreven wordt verminderd. Bovendien zijn recordtypen standaard ontworpen om onveranderlijk te zijn, wat helpt om bugs te voorkomen die worden veroorzaakt door een veranderlijke status.

Een ander voordeel van het gebruik van recordtypen is dat ze worden geleverd met ingebouwde ondersteuning voor gelijkheidsvergelijkingen, hash-codes en tekenreeksrepresentaties.







Inleiding tot recordtypen in C#

Recordtypen in C# bieden een beknopte manier om typen te definiëren voor kleine, onveranderlijke gegevensstructuren. Wanneer u een nieuw record maakt, kunt u waarden voor de eigenschappen in de constructor doorgeven en vervolgens toegang krijgen tot die waarden met behulp van de eigenschappensyntaxis. Ze worden gebruikt om het maken en gebruiken van objecten te vereenvoudigen die een goed gedefinieerde structuur hebben en die na het maken niet hoeven te worden gewijzigd.



openbaar register < Recordnaam > ( < ParameterLijst > ) ;

Het trefwoord public maakt het recordtype toegankelijk voor andere klassen in het programma. Het trefwoord record definieert het type object, gevolgd door de naam van het recordtype. De ParameterList definieert de eigenschappen van het recordtype. Hier is een voorbeeld dat is gedaan waarin ik bedrijfsgegevens heb opgeslagen, zoals naam, afdeling en categorie, hieronder staat de code ervoor:



systeem gebruiken;

// Definieer een record met de naam CompanyDetails met drie tekenreekseigenschappen: Naam, Afdeling en Categorie
bedrijfsgegevens vastleggen ( string Naam, string Afdeling, string Categorie ) ;

klasse programma
{
statische leegte Main ( snaar [ ] argumenten )
{
// Maak een nieuw exemplaar van het CompanyDetails-record en geef het door in de eigendomswaarden
CompanyDetails bedrijf = nieuwe CompanyDetails ( 'Linux-hint' , 'Inhoud schrijven' , 'Linux' ) ;

// Print de bedrijfsnaam, afdeling en categorie uit
Console.WriteLine ( $ 'Bedrijfsnaam: {company.Name}' ) ;
Console.WriteLine ( $ 'Afdeling: {bedrijf.Afdeling}' ) ;
Console.WriteLine ( $ 'Categorie: {bedrijf.Categorie}' ) ;
}
}

In dit programma maken we een record met de naam CompanyDetails dat drie eigenschappen heeft: Naam, Afdeling en Categorie, die elk een tekenreeks zijn. Vervolgens maken we een nieuwe instantie van CompanyDetails, genaamd company, en geven we waarden door voor elk van de eigenschappen. De Console.WriteLine-statements voeren vervolgens de waarden uit van de eigenschappen Naam, Afdeling en Categorie van het bedrijfsobject, hier is de uitvoer van de code:





U kunt ook meerdere recordtypen definiëren in C# en elk recordtype kan zijn eigen unieke set eigenschappen hebben. U kunt bijvoorbeeld één recordtype definiëren voor Medewerker en een ander voor de bedrijfsgegevens en hier is de code daarvoor:



systeem gebruiken;

// Een record definiëren om details van een bedrijf op te slaan
bedrijfsgegevens vastleggen ( string Naam, string Afdeling, string Categorie ) ;

// Een record definiëren om gegevens van een werknemer op te slaan
werknemersgegevens vastleggen ( string Naam, int WerknemerID, int Leeftijd ) ;

klasse programma
{
statische leegte Main ( snaar [ ] argumenten )
{
// Een instantie maken van de CompanyDetails-record en de waarden initialiseren
var companyDetails = nieuwe CompanyDetails ( 'Linux-hint' , 'Inhoud schrijven' , 'Linux' ) ;

// De waarden van het CompanyDetails-record afdrukken met behulp van stringinterpolatie
Console.WriteLine ( $ 'Bedrijfsnaam: {companyDetails.Name}' ) ;
Console.WriteLine ( $ 'Afdeling: {companyDetails.Afdeling}' ) ;
Console.WriteLine ( $ 'Categorie: {companyDetails.Category}' ) ;

// Een instantie maken van het record EmployeeDetails en de waarden initialiseren
var employeeDetails = nieuwe EmployeeDetails ( 'Markering' , 7834 , 25 ) ;

// De waarden van het record EmployeeDetails afdrukken met behulp van stringinterpolatie
Console.WriteLine ( $ 'Naam medewerker: {employeeDetails.Name}' ) ;
Console.WriteLine ( $ 'Werknemer-ID: {employeeDetails.EmployeeID}' ) ;
Console.WriteLine ( $ 'Leeftijd werknemer: {employeeDetails.Age}' ) ;
}
}

Eerst definiëren we een recordtype CompanyDetails met drie eigenschappen: CompanyName, Department en Category. Vervolgens maken we een nieuw exemplaar van het CompanyDetails-record en initialiseren we de eigenschappen ervan met de waarden 'Linux hint', 'Content Writing' en 'Linux'.

Vervolgens definiëren we een ander recordtype EmployeeDetails met drie eigenschappen: Name, EmployeeID en Age. Vervolgens maken we een nieuw exemplaar van de EmployeeDetails-record en initialiseren de eigenschappen ervan met de waarden 'Mark', 7834 en 25. Ten slotte gebruiken we Console.WriteLine-instructies om de waarden van de eigenschappen van zowel de CompanyDetails- als de EmployeeDetails-records uit te voeren, hier is de uitvoer van de code:

Conclusie

De recordtypen zijn een nieuwe functie die is geïntroduceerd in C# 9 en die een vereenvoudigde syntaxis biedt voor het maken van klassen waarin gegevens worden opgeslagen. Ze bieden verschillende voordelen, waaronder een beknopte syntaxis, automatische gelijkheidsvergelijking, hashing, afdrukken en het eenvoudig maken van onveranderlijke objecten.

Ze hebben echter ook enkele beperkingen, zoals het onvermogen om te erven van andere klassen en beperkte functionaliteit voor complexe logica. Over het algemeen zijn recordtypen een handig hulpmiddel voor C#-ontwikkelaars en kunnen ze de leesbaarheid en onderhoudbaarheid van hun code verbeteren.