Az adattípusok minden programozási nyelv fontos szempontjai, és a C# számos adattípust kínál, amelyeket változók deklarálására, metódusok meghatározására és objektumok létrehozására használnak. Ebben a cikkben a C# különböző adattípusait és azok alkategóriáit tárgyaljuk, beleértve az érték-, referencia- és mutató adattípusokat.
Milyen adattípusok léteznek a C#-ban?
A C# a erősen tipizált programozási nyelv , ami azt jelenti, hogy minden változót egy adott adattípussal kell deklarálni, és három fő adattípus-kategóriával rendelkezik:
1: Érték adattípusok
Az értékadattípusok azok, amelyek értékeiket közvetlenül a memóriában tárolják. A veremben vannak lefoglalva, és gyakran kisebb adatkészletek tárolására használják. Az értékadattípusok alkategóriái a következők:
Numerikus adattípus
Ezeket az adattípusokat numerikus értékek tárolására használják. A numerikus adattípusok több alkategóriára vannak osztva, például tizedesjegyekre, egészekre és lebegőpontos számokra:
- Egész számok: Ezeket az adattípusokat egész számok tárolására használják, és az egész számok alkategóriái a következők: sbyte, byte, short, ushort, int, uint, long és ulong. Az egyes egész számokat tartalmazó adatformátumok értéktartománya változó.
- Lebegőpontos számok: Ezeket az adattípusokat decimális számok tárolására használják, és a lebegőpontos számok alkategóriái közé tartozik a float és a double. A Float legfeljebb 7 tizedesjegyet, míg a double legfeljebb 15 tizedesjegyet képes tárolni.
- Tizedesjegyek: Ezek az adattípusok rendkívül pontos decimális egész számok tárolására szolgálnak. A decimális legfeljebb 28 tizedesjegyet tárolhat.
Logikai adattípus
A logikai értékek, amelyek csak igazak vagy hamisak lehetnek, ebben az adatformátumban tárolódnak.
Karakter adattípus
A rendszer egyetlen karaktert tárol ezzel az adattípussal.
Példa
A következő példakód bemutatja, hogyan kell használni az érték adattípust C#-ban:
Rendszer használata;névtér ValueDataTypesPélda
{
osztály Programja
{
statikus üresség Fő ( húr [ ] args )
{
int myInt = 5 ;
float myFloat = 3,14f;
double myDouble = 3,14159265359 ;
bool myBool = igaz ;
char myChar = 'a' ;
Console.WriteLine ( 'Az egész értékem: ' + myInt ) ;
Console.WriteLine ( 'Az én lebegő értékem: + myFloat ) ;
Console.WriteLine ( 'A kettős értékem: + myDouble ) ;
Console.WriteLine ( 'Az én logikai értékem: + myBool ) ;
Console.WriteLine ( 'Az én karakterem értéke: ' + myChar ) ;
}
}
}
Ebben a példában különböző értékű adattípusú változókat deklaráltunk és inicializáltunk, például int, float, double, bool és char. Ezután a Console.WriteLine metódussal kinyomtattuk ezeknek a változóknak az értékeit, a program kimenete a következő lesz:
2: Referencia adattípusok
A referencia adattípusok azok, amelyek hivatkozást tárolnak arra a memóriahelyre, ahol az értéket tárolják. A kupacban vannak lefoglalva, és általában nagyobb mennyiségű adat tárolására használják. A referencia adattípusok alkategóriái a következők:
Osztály
A C#-ban az osztály egy referenciatípus, amely meghatározza az objektumok létrehozásának tervét.
Húr
Ez a hivatkozási adattípus szöveges adatok tárolására szolgál, a karakterlánc hivatkozási típus, de sok tekintetben értéktípusként viselkedik.
Sor
Ezzel az adattípussal azonos típusú értékek gyűjteménye tárolható. A tömbök referenciatípusok, de bizonyos esetekben értéktípusként is viselkedhetnek.
Felület
Egy interfész metódusokat, tulajdonságokat, eseményeket és indexelőket határoz meg anélkül, hogy megadná a megvalósítás részleteit.
Delegált
A delegált lehetővé teszi, hogy egy metódust argumentumként adjon át egy másik metódusnak, majd később a delegálton keresztül meghívja azt.
Példa
Íme néhány minta C# kód, amely bemutatja, hogyan kell használni referencia adattípusok :
Rendszer használata;osztály Személy
{
public string Név;
publikus int Kor;
}
osztály Programja
{
statikus üresség Fő ( húr [ ] args )
{
Személy személy1 = új személy ( ) ;
személy1.Név = 'SAJÁT MAGA' ;
személy1.Kor = húsz ;
Személy személy2 = személy1;
személy2.Kor = 30 ;
Console.WriteLine ( személy1.Név + 'van' + személy1.Életkor + ' éves.' ) ;
Console.WriteLine ( személy2.Név + 'van' + személy2.Életkor + ' éves.' ) ;
}
}
Ebben a példában a Személy osztály két nyilvános mezővel rendelkezik: Név, amely karakterlánc típusú, és Életkor, amely int típusú. Ezután elkészítjük a Person osztály új példányát, és hozzárendeljük a Main metódusban a person1-hez. Módosítjuk a person1 név és életkor attribútumait.
Ezután létrehozunk egy másik személy2 referenciaváltozót, és hozzárendeljük a személy1 értékét. Ezután a person2 Age tulajdonságát 30-ra módosítjuk.
Végül kinyomtatjuk a személy1 és a személy2 nevét és életkorát. Figyelje meg, hogy megváltoztatja az értékét személy2.Kor értékét is megváltoztatja személy1.Kor , mivel mindkét változó ugyanarra utal tárgy emlékül.
3: Mutató adattípusok
A mutató adattípusok egy másik változó memóriacímének tárolására szolgálnak. Alacsony szintű programozásban használják, például rendszerszintű programozásban vagy eszközillesztő-fejlesztésben . A C#-ban a mutató adattípusokat nem használják közvetlenül , de nem biztonságos kódblokkokban használhatók. A következő a mutató adattípusok alkategóriája:
Mutató adattípus
Ez az adattípus egy másik változó memóriacímének tárolására szolgál.
Itt van egy példa, amely bemutatja a használatát mutató adattípusok C#-ban, bár sok odafigyelést igényel:
Rendszer használata;osztály Programja {
static unsafe void Main ( ) {
int szám = 10 ;
int * p = & az egyiken;
Console.WriteLine ( $ 'Num értéke: {num}' ) ;
Console.WriteLine ( $ 'Address of num: {(long)p:X}' ) ;
Console.WriteLine ( $ 'A szám értéke mutató használatával: {*p}' ) ;
Console.ReadLine ( ) ;
}
}
Ebben a példában a nem biztonságos kulcsszót használjuk a mutatók használatának engedélyezéséhez. Deklarálunk egy int típusú változót, és 10-es értéket adunk neki. Ezután létrehozunk egy int* típusú mutatóváltozót, és hozzárendeljük az érték memóriacímét a & operátor segítségével.
Továbbá az értékben tárolt értéket elérjük a mutató hivatkozásának megszüntetésével a * operátor használatával, és módosíthatjuk is az értéket ugyanazzal az operátorral:
Jegyzet: A mutatók használata C#-ban fokozott odafigyelést és odafigyelést igényel a memóriakezelési problémák elkerülése érdekében, ezért csak szükség esetén és óvatosan szabad használni őket.
Következtetés
A C#-ban számos különböző adattípus érhető el, amelyek különféle feladatokhoz használhatók. Kisebb mennyiségű adat tárolása értékadattípusok, nagyobb mennyiségek pedig referencia adattípusok használatával kerülnek tárolásra. A mutató adattípusokat az alacsony szintű programozásban használják, és a C#-ban nem gyakran használják.