c type casting explicit implicit data conversion with example
Gegevenstype casten in C # met voorbeelden: deze zelfstudie legt expliciete en impliciete conversie uit, converteren naar string- en gegevenstypeconversie met behulp van helperklassen:
Gegevenstypen en variabelen in C # werden in onze vorige tutorial in detail uitgelegd.
We hebben geleerd hoe het ene gegevenstype kan worden geconverteerd naar een ander gegevenstype door type casting te gebruiken. Typecasting is verdeeld in twee delen, namelijk impliciete en expliciete conversie.
Laten we in deze tutorial dieper ingaan op C # Type Casting.
Zoek hier de Easy C # Trainingsgids
Het is een impliciete conversie wanneer een kleiner datatype wordt geconverteerd naar een groter datatype of een afgeleide klasse naar een basisklasse.
Aan de andere kant staat de conversie in de tegenovergestelde richting bekend als expliciete conversie. Het heeft een cast-operator nodig om een hoger datatype om te zetten in een kleiner datatype. Dit type conversie is niet type-safe en kan leiden tot gegevensverlies.
Wat je leert:
Gegevenstype Casting in C #
In deze tutorial zullen we in detail bespreken hoe het ene type data kan worden omgezet in een ander data type. C # is een statisch type tijdens compilatie, wat betekent dat het na het declareren van een variabele niet kan worden gebruikt om waarden van een ander gegevenstype op te slaan.
Dit kan echter worden verholpen door dat type om te zetten in een variabel type.
Laten we proberen een tekenreekswaarde om te zetten in een geheel getal.
Als we dit compileren, wordt er een fout gegenereerd met de mededeling: 'Kan het type‘ string ’niet impliciet converteren naar‘ int ’.'
Gegevenstypen kunnen verder worden onderverdeeld op basis van gegevenstypen.
- Primitief
- Niet primitief
Primitieve gegevenstypen zijn vooraf gedefinieerd, terwijl niet-primitieve gegevenstypen door de gebruiker zijn gedefinieerd. Gegevenstypen zoals byte, int, short, float, long, char, bool, etc. worden primitieve gegevenstypen genoemd. Niet-primitieve gegevenstypen omvatten klasse, opsomming, array, gedelegeerde, etc.
In deze tutorial kijken we naar de verschillende methoden die C # biedt voor typecasting.
Impliciete conversie
Impliciete conversie is het eenvoudigste type conversie. Dit type conversie is type-safe en er gaan geen gegevens verloren tijdens de conversie. Deze conversies hebben betrekking op het converteren van een afgeleide klasse naar een basisklasse.
beste screenshot-app voor Windows 10
Bijvoorbeeld, we kunnen impliciete conversie direct gebruiken als de waarde die in een andere variabele moet worden opgeslagen, direct past zonder gegevensverlies. Laten we zeggen dat we een 'integer' -waarde hebben en we willen die waarde doorgeven aan een 'long'.
Expliciete conversie
Bij impliciete conversie hebben we gezien dat we een afgeleide klasse direct kunnen converteren naar een basisklasse zonder gegevens te verliezen, maar in het geval dat er een kans is op gegevensverlies, moet de compiler een expliciete conversie uitvoeren.
Expliciete conversie of cast is een proces waarbij informatie aan de compiler wordt doorgegeven die het programma probeert uit te voeren met de kennis van mogelijk gegevensverlies.
Bijvoorbeeld, als we een hogere numerieke waarde naar een lagere waarde converteren.
Als u nu 'i' afdrukt, zult u zien dat het '75' zal afdrukken. Alle gegevens na de komma gaan verloren bij de conversie.
Conversie met behulp van verschillende helperklassen
Om tussen verschillende niet-compatibele typen te converteren, zoals het omzetten van een string naar een getal of een byte-array naar een geheel getal of zelfs hexadecimale strings naar andere numerieke typen, hebben we een andere helper-klasse nodig omdat een directe conversie niet mogelijk is.
Een gegevenstype kan worden geconverteerd naar een ander gegevenstype met behulp van methoden die aanwezig zijn in de klasse convert of door een TryParse-methode te gebruiken die beschikbaar is voor de verschillende numerieke typen. TryParse is handiger als we een string naar het cijfer converteren. Het is vrij eenvoudig en efficiënt.
Hier hebben we een string omgezet in een geheel getal met behulp van parse.
Laten we eens kijken naar een andere conversiemethode, namelijk de Convert-methode.
Statische methoden die aanwezig zijn in het Klasse omzetten zijn erg handig voor het converteren naar het basisgegevenstype of vice versa. Enkele van de ondersteunde gegevenstypen zijn Char, Boolean, Int32, int64, Double, Decimal, String, Int16, enz. De klasse Convert ondersteunt ook methoden voor andere conversies.
Converteren naar tekenreeks
De methode Convert.ToString zet een gegevenstype om in een tekenreeks. In de voorbeeld hieronder converteren we een gegevenstype met gehele getallen naar een gegevenstype van een string.
InvalidCastException
Soms is het mogelijk dat de compiler niet begrijpt of de bewerking die wordt uitgevoerd om het ene type naar het andere te converteren, geldig is of niet. Hierdoor mislukt de compiler tijdens de runtime. Zodra de typeconversie mislukt, wordt er een ongeldige uitzondering gegenereerd.
InvalidCastException wordt gegenereerd wanneer een expliciete of typeconversie-implementatie niet wordt ondersteund door beide gegevenstypen die voor conversie worden gebruikt.
Gevolgtrekking
In deze zelfstudie hebben we de soorten conversie geleerd en hoe u een conversie tussen verschillende gegevenstypen kunt uitvoeren. Impliciete conversie is de conversie waarbij een afgeleide klasse wordt geconverteerd naar een basisklasse zoals int naar een float-type.
Expliciete conversie is de conversie die gegevensverlies kan veroorzaken. Expliciete conversie converteert de basisklasse naar de afgeleide klasse. Mogelijk moeten we de conversie uitvoeren op verschillende andere gegevenstypen, daarvoor gebruiken we de hulp van de helper-klasse. Helper class zoals 'Parse' en 'ConvertTo' biedt verschillende manieren om het ene gegevenstype naar het andere te converteren.
We hebben ook geleerd over de uitzondering die de compiler genereert als hij de conversie tussen twee typen niet begrijpt.
Zoek hier de Easy C # Trainingsgids
Aanbevolen literatuur
- C # Gegevenstypen en variabelen met voorbeelden
- C ++ gegevenstypen
- Typ conversies in C ++
- Datamining: proces, technieken en grote problemen bij gegevensanalyse
- Data Mart-zelfstudie - Typen, voorbeelden en implementatie van Data Mart
- Typen migratietests: met testscenario's voor elk type
- 10+ beste tools voor gegevensverzameling met strategieën voor het verzamelen van gegevens
- Datapoolfunctie in IBM Rational Quality Manager voor testgegevensbeheer