C# - Gegevenstypen
De variabelen in C# zijn onderverdeeld in de volgende typen −
- Waardetypen
- Referentietypen
- Aanwijzertypen
Waardetype
Waardetypevariabelen kunnen direct een waarde krijgen. Ze zijn afgeleid van de klasse System.ValueType .
De waardetypen bevatten direct gegevens. Enkele voorbeelden zijn int, char en float , waarin respectievelijk getallen, alfabetten en getallen met drijvende komma worden opgeslagen. Wanneer u een int . declareert type, wijst het systeem geheugen toe om de waarde op te slaan.
De volgende tabel bevat de beschikbare waardetypen in C# 2010 −
Type | Vertegenwoordigt | Bereik | Standaardwaarde |
---|---|---|---|
bool | Booleaanse waarde | Waar of niet waar | Onwaar |
byte | 8-bits geheel getal zonder teken | 0 tot 255 | 0 |
char | 16-bits Unicode-teken | U +0000 tot U +ffff | '\0' |
decimaal | 128-bit nauwkeurige decimale waarden met 28-29 significante cijfers | (-7,9 x 10 28 tot 7,9 x 10 28 ) / 10 0 tot 28 | 0.0M |
dubbel | 64-bits dubbele-precisie drijvende-kommatype | (+/-)5,0 x 10 -324 tot (+/-) 1,7 x 10 308 | 0.0D |
drijvend | 32-bits single-precision floating point type | -3,4 x 10 38 tot + 3,4 x 10 38 | 0.0F |
int | 32-bits geheel getal met teken | -2.147.483.648 tot 2.147.483.647 | 0 |
lang | 64-bits geheel getal met teken | -9.223.372.036.854.775.808 tot 9.223.372.036.854.775.807 | 0L |
sbyte | 8-bits geheel getal met teken | -128 tot 127 | 0 |
kort | 16-bits geheel getal met teken | -32.768 tot 32.767 | 0 |
uint | 32-bits integer type zonder teken | 0 tot 4.294.967.295 | 0 |
ulong | 64-bits integer type zonder teken | 0 tot 18.446.744.073.709.551.615 | 0 |
ushort | 16-bits integer type zonder teken | 0 tot 65.535 | 0 |
Om de exacte grootte van een type of een variabele op een bepaald platform te krijgen, kunt u de sizeof gebruiken methode. De uitdrukking sizeof(type) geeft de opslaggrootte van het object of typt in bytes. Hieronder volgt een voorbeeld om de grootte van int . te krijgen typ op elke machine −
Live demousing System; namespace DataTypeApplication { class Program { static void Main(string[] args) { Console.WriteLine("Size of int: {0}", sizeof(int)); Console.ReadLine(); } } }
Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −
Size of int: 4
Referentietype
De referentietypes bevatten niet de feitelijke gegevens die in een variabele zijn opgeslagen, maar ze bevatten een verwijzing naar de variabelen.
Met andere woorden, ze verwijzen naar een geheugenlocatie. Met behulp van meerdere variabelen kunnen de referentietypes verwijzen naar een geheugenlocatie. Als de gegevens in de geheugenlocatie worden gewijzigd door een van de variabelen, geeft de andere variabele deze waardeverandering automatisch weer. Voorbeeld van ingebouwd referentietypes zijn:object , dynamisch, en string .
Objecttype
Het Objecttype is de ultieme basisklasse voor alle gegevenstypen in C# Common Type System (CTS). Object is een alias voor de klasse System.Object. Aan de objecttypen kunnen waarden worden toegewezen van andere typen, waardetypen, referentietypen, vooraf gedefinieerde of door de gebruiker gedefinieerde typen. Voordat waarden worden toegewezen, moet echter typeconversie worden uitgevoerd.
Wanneer een waardetype wordt geconverteerd naar een objecttype, wordt dit boksen genoemd en aan de andere kant, wanneer een objecttype wordt geconverteerd naar een waardetype, wordt dit unboxing genoemd. .
object obj; obj = 100; // this is boxing
Dynamisch type
U kunt elk type waarde opslaan in de dynamische gegevenstypevariabele. Typecontrole voor dit soort variabelen vindt plaats tijdens runtime.
Syntaxis voor het declareren van een dynamisch type is −
dynamic <variable_name> = value;
Bijvoorbeeld,
dynamic d = 20;
Dynamische typen zijn vergelijkbaar met objecttypen, behalve dat typecontrole voor objecttypevariabelen plaatsvindt tijdens het compileren, terwijl dat voor de dynamische typevariabelen tijdens runtime plaatsvindt.
Snaartype
Het Stringtype stelt u in staat om willekeurige tekenreekswaarden aan een variabele toe te wijzen. Het tekenreekstype is een alias voor de klasse System.String. Het is afgeleid van het objecttype. De waarde voor een tekenreekstype kan worden toegewezen met behulp van tekenreeksletters in twee vormen:aanhalingstekens en @aanhalingstekens.
Bijvoorbeeld,
String str = "Tutorials Point";
Een letterlijke tekenreeks met @quotes ziet er als volgt uit −
@"Tutorials Point";
De door de gebruiker gedefinieerde referentietypen zijn:klasse, interface of gedelegeerde. We zullen deze typen in een later hoofdstuk bespreken.
Aanwijzertype
Aanwijzertypevariabelen slaan het geheugenadres van een ander type op. Pointers in C# hebben dezelfde mogelijkheden als de pointers in C of C++.
Syntaxis voor het declareren van een aanwijzertype is −
type* identifier;
Bijvoorbeeld,
char* cptr; int* iptr;
We zullen aanwijzertypes bespreken in het hoofdstuk 'Onveilige codes'.
C Taal
- De 4 primaire typen sleufschijven voor bevestigingsmiddelen
- Verschillende thermokoppeltypes en -bereiken met vergelijking
- C#-variabelen en (primitieve) gegevenstypen
- C# Type conversie
- C++-gegevenstypen
- C Gegevenstypen
- Python-gegevenstypen
- Python Type Conversie en Type Casting
- Java-gegevenstypen (primitief)
- Java Type Casting
- C++ Char-gegevenstype met voorbeelden