Millised andmetüübid on C#-s olemas

Millised Andmetuubid On C S Olemas



Andmetüübid on iga programmeerimiskeele oluline aspekt ja C# pakub mitmeid andmetüüpe, mida kasutatakse muutujate deklareerimiseks, meetodite määratlemiseks ja objektide loomiseks. Selles artiklis käsitleme C# erinevaid andmetüüpe ja nende alamkategooriaid, sealhulgas väärtus-, viite- ja osuti andmetüüpe.

Millised andmetüübid on C#-s olemas?

C# on a tugevasti trükitud programmeerimiskeel , mis tähendab, et kõik muutujad tuleb deklareerida kindla andmetüübiga ja sellel on kolm peamist andmetüüpide kategooriat:







1: väärtuste andmetüübid

Väärtuste andmetüübid on need, mis salvestavad oma väärtused otse mällu. Need on paigutatud virnasse ja neid kasutatakse sageli väiksemate andmekogumite salvestamiseks. Väärtuse andmetüüpide alamkategooriad on järgmised.



Numbriline andmetüüp



Neid andmetüüpe kasutatakse arvväärtuste salvestamiseks. Numbrilised andmetüübid on jagatud mitmeks alamkategooriaks, nagu kümnendkohad, täisarvud ja ujukomaarvud:





  • Täisarvud: Neid andmetüüpe kasutatakse täisarvude salvestamiseks ja täisarvude alamkategooriad hõlmavad sbyte, byte, short, ushort, int, uint, long ja ulong. Iga täisarvu andmevormingu väärtuste vahemik on erinev.
  • Ujukoma numbrid: Neid andmetüüpe kasutatakse kümnendarvude salvestamiseks ja ujukomaarvude alamkategooriate hulka kuuluvad ujukomaarvud ja topeltarvud. Float võib salvestada kuni 7 kümnendkohta, topelt aga kuni 15 kümnendkohta.
  • Kümnendkohad: Neid andmetüüpe kasutatakse väga täpsete kümnendtäisarvude salvestamiseks. Decimal võib salvestada kuni 28 kümnendkohta.

Boole'i ​​andmetüüp

Selles andmevormis salvestatakse tõeväärtused, mis võivad olla ainult tõesed või valed.



Tähemärgi andmetüüp

Seda andmetüüpi kasutades salvestatakse üksikud märgid.

Näide

Järgmine näidiskood illustreerib, kuidas kasutada väärtuse andmetüüpi C#-s:

süsteemi kasutamine;

nimeruum ValueDataTypesExample
{
klassi programm
{
staatiline tühimik Peamine ( string [ ] args )
{
int myInt = 5 ;
float myFloat = 3,14f;
double myDouble = 3,14159265359 ;
bool myBool = tõsi ;
char myChar = 'a' ;

Console.WriteLine ( 'Minu täisarv on: ' + minuInt ) ;
Console.WriteLine ( 'Minu ujuvväärtus on:' + myFloat ) ;
Console.WriteLine ( 'Minu topeltväärtus on:' + myDouble ) ;
Console.WriteLine ( 'Minu tõeväärtus on: ' + myBool ) ;
Console.WriteLine ( 'Minu tähemärgi väärtus on:' + myChar ) ;
}
}
}

Selles näites oleme deklareerinud ja initsialiseerinud erinevate väärtusandmetüüpide muutujad, nagu int, float, double, bool ja char. Seejärel printisime Console.WriteLine meetodi abil nende muutujate väärtused välja, selle programmi väljundiks on:

2: Viiteandmete tüübid

Viiteandmete tüübid on need, mis salvestavad viite mälukohale, kuhu väärtus on salvestatud. Need eraldatakse hunnikule ja neid kasutatakse tavaliselt suuremate andmemahtude salvestamiseks. Viiteandmete tüüpide alamkategooriad on järgmised.

Klass

C#-s on klass viitetüüp, mis määratleb objektide loomise kavandi.

String

Seda viiteandmetüüpi kasutatakse tekstiandmete salvestamiseks, string on viitetüüp, kuid käitub mitmel viisil väärtustüübina.

Massiiv

Seda andmetüüpi kasutades saab salvestada sama tüüpi väärtuste kogu. Massiivid on viitetüübid, kuid teatud juhtudel võivad nad käituda ka väärtustüüpidena.

Liides

Liides määratleb meetodite, atribuutide, sündmuste ja indekseerijate komplekti, esitamata rakenduse üksikasju.

Delegeeri

Delegaat võimaldab teil edastada meetodi argumendina teisele meetodile ja seejärel seda meetodit delegaadi kaudu hiljem kutsuda.

Näide

Siin on mõned C#-koodi näidised, mis näitavad, kuidas seda kasutada viiteandmete tüübid :

süsteemi kasutamine;

klassi Isik
{
avalik string Nimi;
avalik int Vanus;
}

klassi programm
{
staatiline tühimik Peamine ( string [ ] args )
{
Isik isik1 = uus isik ( ) ;
isik1.Nimi = 'ISE' ;
isik1.Vanus = kakskümmend ;

Isik isik2 = isik1;
isik2.Vanus = 30 ;

Console.WriteLine ( isik1.Nimi + ' on ' + inimene1.Vanus + ' aastat vana.' ) ;
Console.WriteLine ( isik2.Nimi + ' on ' + inimene2.Vanus + ' aastat vana.' ) ;
}
}

Selle näite klassil Isik on kaks avalikku välja: nimi, mille tüüp on string, ja vanus, mille tüüp on int. Seejärel teeme klassist Isik uue eksemplari ja määrame selle meetodi Main abil isiku1-le. Muudame isiku1 nime ja vanuse atribuute.

Järgmisena loome teise viitemuutuja isik2 ja omistame sellele isiku1 väärtuse. Seejärel muudame isiku2 atribuudi Vanus väärtuseks 30.

Lõpuks prindime välja nii isik1 kui isik2 nime ja vanuse. Pange tähele, et väärtust muutes isik2.Vanus muudab ka väärtust isik1.Vanus , kuna mõlemad muutujad viitavad samale objektiks mälus.

3: kursori andmetüübid

Osuti andmetüüpe kasutatakse mõne teise muutuja mäluaadressi salvestamiseks. Neid kasutatakse madala taseme programmeerimisel, näiteks süsteemitasemel programmeerimisel või seadme draiveri arendamisel . C#-s kursori andmetüüpe otseselt ei kasutata , kuid neid saab kasutada ebaturvalistes koodiplokkides. Järgmine on osuti andmetüüpide alamkategooria:

Osuti andmetüüp

Seda andmetüüpi kasutatakse mõne teise muutuja mäluaadressi salvestamiseks.

Siin on näide, mis demonstreerib selle kasutamist osuti andmetüübid C#-s, kuigi see nõuab palju hoolt:

süsteemi kasutamine;

klassi programm {
staatiline ebaturvaline tühimik Main ( ) {
int number = 10 ;
int * p = & ühel;
Console.WriteLine ( $ 'Nummi väärtus: {num}' ) ;
Console.WriteLine ( $ 'Nummi aadress: {(pikk)p:X}' ) ;
Console.WriteLine ( $ 'Num väärtus, kasutades kursorit: {*p}' ) ;
Console.ReadLine ( ) ;
}
}

Selles näites kasutame osutite kasutamise lubamiseks ebaturvalist märksõna. Deklareerime int-tüüpi muutuja ja anname sellele väärtuse 10. Seejärel loome osutimuutuja pointer tüübiga int* ja omistame sellele väärtuse mäluaadressi, kasutades operaatorit &.

Lisaks pääseme seejärel juurde väärtuses salvestatud väärtusele, eemaldades kursorile viitamise operaatori * abil, ja saame väärtust ka sama operaatori abil muuta:

Märge: Osutajate kasutamine C#-s nõuab mäluhaldusprobleemide vältimiseks erilist hoolt ja tähelepanu, seega tuleks neid kasutada ainult vajaduse korral ja ettevaatusega.

Järeldus

C#-s on saadaval palju erinevaid andmetüüpe, mida saab kasutada erinevate ülesannete jaoks. Väiksemad andmemahud salvestatakse väärtusandmetüüpide ja suuremad kogused võrdlusandmetüüpide abil. Osuti andmetüüpe kasutatakse madala taseme programmeerimisel ja C#-s neid tavaliselt ei kasutata.