Welke gegevenstypen bestaan ​​er in C#

Welke Gegevenstypen Bestaan Er In C



Gegevenstypen zijn een belangrijk aspect van elke programmeertaal en C# biedt verschillende gegevenstypen die worden gebruikt voor het declareren van variabelen, het definiëren van methoden en het maken van objecten. In dit artikel bespreken we de verschillende gegevenstypen in C# en hun subcategorieën, waaronder waarde-, referentie- en pointer-gegevenstypen.

Welke gegevenstypen bestaan ​​er in C#?

C# is een sterk getypte programmeertaal , wat betekent dat alle variabelen moeten worden gedeclareerd met een specifiek gegevenstype en heeft drie hoofdcategorieën van gegevenstypen:







1: Waardegegevenstypen

Waardegegevenstypen zijn gegevenstypen die hun waarden rechtstreeks in het geheugen opslaan. Ze worden toegewezen op de stapel en worden vaak gebruikt voor het opslaan van kleinere datasets. Hieronder volgen de subcategorieën van typen waardegegevens:



Numeriek gegevenstype



Deze gegevenstypen worden gebruikt voor het opslaan van numerieke waarden. Numerieke gegevenstypen zijn onderverdeeld in verschillende subcategorieën, zoals decimalen, gehele getallen en getallen met drijvende komma:





  • gehele getallen: Deze gegevenstypen worden gebruikt voor het opslaan van gehele getallen en de subcategorieën van gehele getallen omvatten sbyte, byte, short, ushort, int, uint, long en ulong. Het waardenbereik dat elk gegevensformaat voor gehele getallen kan bevatten, varieert.
  • Drijvende-kommagetallen: Deze gegevenstypen worden gebruikt voor het opslaan van decimale getallen en de subcategorieën van getallen met drijvende komma omvatten float en double. Float kan maximaal 7 decimale cijfers opslaan, terwijl double maximaal 15 decimale cijfers kan opslaan.
  • decimalen: Deze gegevenstypen worden gebruikt om zeer nauwkeurige decimale gehele getallen op te slaan. Decimal kan maximaal 28 decimale cijfers opslaan.

Booleaans gegevenstype

Booleaanse waarden, die alleen waar of onwaar kunnen zijn, worden in deze vorm van gegevens opgeslagen.



Karakter gegevenstype

Met dit gegevenstype worden afzonderlijke tekens opgeslagen.

Voorbeeld

De volgende voorbeeldcode illustreert hoe u het waardegegevenstype in C# kunt gebruiken:

systeem gebruiken;

naamruimte ValueDataTypesExample
{
klasse programma
{
statische leegte Main ( snaar [ ] argumenten )
{
int mijnInt = 5 ;
zweven myFloat = 3.14f;
verdubbel mijnDubbel = 3.14159265359 ;
bool mijnBool = WAAR ;
char mijnChar = 'A' ;

Console.WriteLine ( 'Mijn gehele waarde is: ' + mijnInt ) ;
Console.WriteLine ( 'Mijn floatwaarde is: ' + mijnFloat ) ;
Console.WriteLine ( 'Mijn dubbele waarde is: ' + mijnDubbel ) ;
Console.WriteLine ( 'Mijn booleaanse waarde is: ' + mijnBool ) ;
Console.WriteLine ( 'Mijn karakterwaarde is: ' + mijnChar ) ;
}
}
}

In dit voorbeeld hebben we variabelen van verschillende waardegegevenstypen gedeclareerd en geïnitialiseerd, zoals int, float, double, bool en char. Vervolgens hebben we de waarden van deze variabelen afgedrukt met behulp van de Console.WriteLine-methode, de uitvoer van dit programma zal zijn:

2: Referentiegegevenstypen

Referentiegegevenstypen zijn gegevenstypen die een verwijzing opslaan naar de geheugenlocatie waar de waarde is opgeslagen. Ze worden op de heap toegewezen en worden meestal gebruikt voor het opslaan van grotere hoeveelheden gegevens. Hieronder volgen de subcategorieën van typen referentiegegevens:

Klas

In C# is een klasse een referentietype dat een blauwdruk definieert voor het maken van objecten.

Snaar

Dit referentiegegevenstype wordt gebruikt voor het opslaan van tekstgegevens, de tekenreeks is een referentietype, maar gedraagt ​​zich in veel opzichten als een waardetype.

matrix

Met dit gegevenstype kan een verzameling waarden van hetzelfde type worden opgeslagen. Arrays zijn referentietypen, maar ze kunnen zich in bepaalde gevallen ook gedragen als waardetypen.

Koppel

Een interface definieert een set methoden, eigenschappen, gebeurtenissen en indexeerders, zonder enige implementatiedetails te verstrekken.

Delegeren

Met een gedelegeerde kunt u een methode doorgeven als een argument aan een andere methode, en die methode later via de gedelegeerde aanroepen.

Voorbeeld

Hier is een voorbeeld van C#-code die laat zien hoe te gebruiken referentie gegevenstypen :

systeem gebruiken;

klasse Persoon
{
openbare tekenreeks Naam;
openbare int Leeftijd;
}

klasse programma
{
statische leegte Main ( snaar [ ] argumenten )
{
Persoon persoon1 = nieuwe Persoon ( ) ;
persoon1.Naam = 'ZICHZELF' ;
persoon1.Leeftijd = twintig ;

Persoon persoon2 = persoon1;
persoon2.Leeftijd = 30 ;

Console.WriteLine ( persoon1.Naam + ' is ' + persoon1.Leeftijd + ' jaar oud.' ) ;
Console.WriteLine ( persoon2.Naam + ' is ' + persoon2.Leeftijd + ' jaar oud.' ) ;
}
}

De klasse Person in dit voorbeeld heeft twee openbare velden: Name, van het type string, en Age, van het type int. Vervolgens maken we een nieuwe instantie van de klasse Person en wijzen deze toe aan person1 in de methode Main. We wijzigen de kenmerken Naam en Leeftijd van person1.

Vervolgens maken we nog een referentievariabele persoon2 en kennen deze de waarde van persoon1 toe. Vervolgens wijzigen we de eigenschap Age van person2 in 30.

Ten slotte printen we de naam en leeftijd van zowel persoon 1 als persoon 2 uit. Merk op dat, het veranderen van de waarde van persoon2.Leeftijd verandert ook de waarde van persoon1.Leeftijd , aangezien beide variabelen naar hetzelfde verwijzen voorwerp in het geheugen.

3: Aanwijzergegevenstypen

Pointer-gegevenstypen worden gebruikt voor het opslaan van het geheugenadres van een andere variabele. Ze worden gebruikt bij programmeren op laag niveau, zoals programmeren op systeemniveau of de ontwikkeling van apparaatstuurprogramma's . In C# worden aanwijzergegevenstypen niet rechtstreeks gebruikt , maar ze kunnen worden gebruikt in onveilige codeblokken. Het volgende is de subcategorie van aanwijzergegevenstypen:

Aanwijzer gegevenstype

Dit gegevenstype wordt gebruikt voor het opslaan van het geheugenadres van een andere variabele.

Hier is een voorbeeld dat het gebruik van demonstreert pointer-gegevenstypen in C# hoewel het veel zorg vereist:

systeem gebruiken;

klasse programma {
statisch onveilig nietig Main ( ) {
int getal = 10 ;
int * p= & op een;
Console.WriteLine ( $ 'Waarde van num: {num}' ) ;
Console.WriteLine ( $ 'Adres van nummer: {(long)p:X}' ) ;
Console.WriteLine ( $ 'Waarde van num met aanwijzer: {*p}' ) ;
Console.ReadLine ( ) ;
}
}

In dit voorbeeld gebruiken we het sleutelwoord onveilig om het gebruik van pointers toe te staan. We declareren een variabele van het type int en geven deze de waarde 10. Vervolgens maken we een pointervariabele pointer van het type int* en kennen deze het geheugenadres van de waarde toe met behulp van de &-operator.

Verder hebben we toegang tot de waarde die is opgeslagen in waarde door de verwijzing naar de aanwijzer ongedaan te maken met behulp van de *-operator, en we kunnen de waarde ook wijzigen met dezelfde operator:

Opmerking: Het gebruik van pointers in C# vereist wat extra zorg en aandacht om problemen met geheugenbeheer te voorkomen, dus ze mogen alleen worden gebruikt wanneer dat nodig is en met de nodige voorzichtigheid.

Conclusie

Er zijn veel verschillende gegevenstypen beschikbaar in C# die voor verschillende taken kunnen worden gebruikt. Kleinere hoeveelheden gegevens worden opgeslagen met behulp van waardegegevenstypen en grotere hoeveelheden worden opgeslagen met behulp van referentiegegevenstypen. Pointer-gegevenstypen worden gebruikt bij programmeren op laag niveau en worden niet vaak gebruikt in C #.