Datatyper er et viktig aspekt ved ethvert programmeringsspråk, og C# tilbyr flere datatyper som brukes til å deklarere variabler, definere metoder og lage objekter. I denne artikkelen vil vi diskutere de forskjellige datatypene i C# og deres underkategorier, inkludert verdi-, referanse- og pekerdatatyper.
Hvilke datatyper finnes i C#?
C# er en sterkt skrevet programmeringsspråk , som betyr at alle variabler må deklareres med en bestemt datatype og har tre hovedkategorier av datatyper:
1: Verdidatatyper
Verdidatatyper er de som lagrer verdiene direkte i minnet. De er tildelt på stabelen og brukes ofte til å lagre mindre datasett. Følgende er underkategoriene av verdidatatyper:
Numerisk datatype
Disse datatypene brukes til å lagre numeriske verdier. Numeriske datatyper er delt inn i flere underkategorier, for eksempel desimaler, heltall og flytende tall:
- Heltall: Disse datatypene brukes til å lagre hele tall, og underkategoriene av heltall inkluderer sbyte, byte, short, ushort, int, uint, long og ulong. Utvalget av verdier som hvert heltallsdataformat kan inneholde varierer.
- Flytende kommatall: Disse datatypene brukes til å lagre desimaltall, og underkategoriene til flyttall inkluderer flytende og doble. Float kan lagre opptil 7 desimaler, mens double kan lagre opptil 15 desimaler.
- Desimaler: Disse datatypene brukes til å lagre svært presise desimaltall. Desimal kan lagre opptil 28 desimaler.
Boolsk datatype
Boolske verdier, som bare kan være sanne eller usanne, lagres i denne formen for data.
Tegndatatype
Enkelttegn lagres med denne datatypen.
Eksempel
Følgende eksempelkode illustrerer hvordan du bruker verdidatatypen i C#:
bruker System;navneområde ValueDataTypesExample
{
klasseprogram
{
statisk tomrom Main ( streng [ ] args )
{
int myInt = 5 ;
float myFloat = 3.14f;
dobbel myDouble = 3.14159265359 ;
bool myBool = ekte ;
char myChar = 'en' ;
Console.WriteLine ( 'Min heltallsverdi er: ' + myInt ) ;
Console.WriteLine ( 'Min flyteverdi er:' + myFloat ) ;
Console.WriteLine ( 'Min doble verdi er:' + myDouble ) ;
Console.WriteLine ( 'Min boolske verdi er: ' + myBool ) ;
Console.WriteLine ( 'Min karakterverdi er:' + myChar ) ;
}
}
}
I dette eksemplet har vi deklarert og initialisert variabler av forskjellige verdidatatyper som int, float, double, bool og char. Vi skrev deretter ut verdiene til disse variablene ved å bruke Console.WriteLine-metoden, utdata fra dette programmet vil være:
2: Referansedatatyper
Referansedatatyper er de som lagrer en referanse til minnestedet der verdien er lagret. De er tildelt på haugen og brukes vanligvis til å lagre større datamengder. Følgende er underkategoriene til referansedatatyper:
Klasse
I C# er en klasse en referansetype som definerer en blåkopi for å lage objekter.
String
Denne referansedatatypen brukes til å lagre tekstdata, strengen er en referansetype, men den oppfører seg som en verditype på mange måter.
Array
En samling av verdier av samme type kan lagres ved hjelp av denne datatypen. Matriser er referansetyper, men de kan også oppføre seg som verdityper i visse tilfeller.
Grensesnitt
Et grensesnitt definerer et sett med metoder, egenskaper, hendelser og indeksere, uten å oppgi noen implementeringsdetaljer.
Delegat
En delegat lar deg sende en metode som et argument til en annen metode, og deretter påkalle den metoden senere gjennom delegaten.
Eksempel
Her er noen eksempler på C#-kode som viser hvordan du bruker referansedatatyper :
bruker System;klasse Person
{
offentlig streng Navn;
offentlig in Alder;
}
klasseprogram
{
statisk tomrom Main ( streng [ ] args )
{
Person person1 = ny person ( ) ;
person1.Name = 'HAN SELV' ;
person1.Alder = tjue ;
Person person2 = person1;
person2.Alder = 30 ;
Console.WriteLine ( person1.Navn + ' er ' + person1.Alder + ' år gammel.' ) ;
Console.WriteLine ( person2.Navn + ' er ' + person2.Alder + ' år gammel.' ) ;
}
}
Person-klassen i dette eksemplet har to offentlige felt: Navn, som er av typen streng, og Alder, som er av typen int. Deretter lager vi en ny forekomst av Person-klassen og tilordner den til person1 i Main-metoden. Vi endrer person1s navn og aldersattributter.
Deretter oppretter vi en annen referansevariabel person2, og tildeler den verdien av person1. Vi endrer deretter aldersegenskapen til person2 til 30.
Til slutt skriver vi ut navn og alder på både person1 og person2. Legg merke til at, endre verdien av person2.Alder endrer også verdien av person1.Alder , siden begge variablene refererer til det samme gjenstand i minne.
3: Pekerdatatyper
Pekerdatatyper brukes til å lagre minneadressen til en annen variabel. De brukes i programmering på lavt nivå, for eksempel programmering på systemnivå eller utvikling av enhetsdrivere . I C# brukes ikke pekerdatatyper direkte , men de kan brukes i usikre kodeblokker. Følgende er underkategorien av pekerdatatyper:
Pekerdatatype
Denne datatypen brukes til å lagre minneadressen til en annen variabel.
Her er et eksempel som demonstrerer bruken av pekerdatatyper i C# selv om det krever mye omsorg:
bruker System;klasseprogram {
statisk usikker tomrom Main ( ) {
int tall = 10 ;
int * p = & på en;
Console.WriteLine ( $ 'Verdi av num: {num}' ) ;
Console.WriteLine ( $ 'Adresse til nummer: {(lang)p:X}' ) ;
Console.WriteLine ( $ 'Verdi av num ved hjelp av peker: {*p}' ) ;
Console.ReadLine ( ) ;
}
}
I dette eksemplet bruker vi nøkkelordet usikre for å tillate bruk av pekere. Vi erklærer en variabel av int-type og gir den verdien 10. Vi lager deretter en pekervariabelpeker av typen int* og tildeler den minneadressen til verdien ved å bruke &-operatoren.
Videre får vi tilgang til verdien som er lagret i verdi ved å referere pekeren ved å bruke *-operatoren, og vi kan også endre verdien ved å bruke den samme operatoren:
Merk: Bruk av pekere i C# krever litt ekstra forsiktighet og oppmerksomhet for å unngå problemer med minneadministrasjon, så de bør bare brukes når det er nødvendig og med forsiktighet.
Konklusjon
Det er mange forskjellige datatyper tilgjengelig i C# som kan brukes til ulike oppgaver. Mindre mengder data lagres ved bruk av verdidatatyper, og større mengder lagres ved bruk av referansedatatyper. Pekerdatatyper brukes i lavnivåprogrammering og brukes ikke ofte i C#.