c type casting explicit implicit data conversion with example
Casting av datatype i C # med eksempler: Denne opplæringen forklarer eksplisitt og implisitt konvertering, konvertering til streng og datatypekonvertering ved hjelp av hjelperklasser:
Datatyper og variabler i C # ble forklart i detalj i vår forrige opplæring.
Vi lærte hvordan en datatype kan konverteres til en annen datatype ved hjelp av type casting. Typecasting er delt inn i to deler, dvs. implisitt og eksplisitt konvertering.
La oss grave dypere inn i C # Type Casting i denne opplæringen.
=> Se etter Easy C # Training Guide her
Det er implisitt konvertering når en mindre datatype konverteres til en større datatype eller avledet klasse til en basisklasse.
På den annen side er konvertering i motsatt retning kjent som eksplisitt konvertering. Det trenger en cast-operatør for å konvertere høyere datatype til en mindre datatype. Denne typen konvertering er ikke typesikker og kan føre til tap av data.
Hva du vil lære:
beste mobiltelefon spion app for Android
Støping av datatype i C #
I denne opplæringen vil vi diskutere i detalj hvordan en type data kan konverteres til en annen datatype. C # er statisk type under kompilering, noe som betyr at etter at en variabel er deklarert, kan den ikke brukes til å lagre verdier av noen annen datatype.
Dette kan imidlertid overvinnes ved å konvertere den typen til en variabel type.
La oss prøve å konvertere en strengverdi til et helt tall.
int a; a = 'some random string';
Hvis vi kompilerer dette, vil det kaste en feil som sier at 'Kan ikke implisitt konvertere typen 'streng' til 'int'.'
Datatyper kan deles videre basert på datatyper.
- Primitiv
- Ikke-primitiv
Primitive datatyper er forhåndsdefinerte mens ikke-primitive datatyper er brukerdefinerte. Datatyper som byte, int, short, float, long, char, bool, etc kalles primitive datatyper. Ikke-primitive datatyper inkluderer klasse, enum, array, delegat, etc.
I denne opplæringen vil vi se på de forskjellige metodene som C # tilbyr for typecasting.
Implisitt konvertering
Implisitt konvertering er den enkleste typen konvertering. Denne typen konvertering er typesikker og intet tap av data skjer under konvertering. Disse konverteringene handler om å konvertere en avledet klasse til basisklasse.
For eksempel, Vi kan direkte bruke implisitt konvertering hvis verdien som må lagres i en annen variabel kan passe direkte uten tap av data. La oss si at vi har en 'heltall' -verdi, og vi vil overføre denne verdien til en 'lang'.
int i = 75; long j = i;
Eksplisitt konvertering
I implisitt konvertering så vi at vi direkte kan konvertere en avledet klasse til basisklasse uten å miste data, men hvis det er en sjanse for datatap, vil kompilatoren kreve å utføre en eksplisitt konvertering.
Eksplisitt konvertering eller cast er en prosess for å overføre informasjon til kompilatoren som programmet prøver å utføre konvertering med kunnskap om mulig datatap.
hvordan åpne torrented filer på android
For eksempel, hvis vi konverterer en høyere numerisk verdi til en lavere.
double d = 75.25; int i; i = (int)d;
Nå, hvis du skriver ut 'i', vil du oppdage at den vil skrive ut '75'. Alle data etter desimal går tapt i konverteringen.
hvordan du setter opp formørkelse for c ++
Konvertering ved hjelp av forskjellige hjelperklasser
For å konvertere mellom forskjellige ikke-kompatible typer, for eksempel å konvertere en streng til et tall eller en byte-matrise til et heltall eller til og med heksadesimale strenger til andre numeriske typer, trenger vi forskjellige hjelperklasser, da en direkte konvertering ikke er mulig.
En datatype kan konverteres til en annen datatype ved å bruke metoder som er tilstede i konverteringsklassen eller ved å bruke en TryParse-metode som er tilgjengelig for de forskjellige talltypene. TryParse er mer nyttig hvis vi konverterer en streng til tallet. Det er ganske greit og effektivt.
int number = Int32.Parse(“123”);
Her konverterte vi en streng til et helt tall ved å bruke analyse.
La oss se på en annen konverteringsmetode som er konverteringsmetoden.
Statiske metoder tilstede inne i Konverter klasse er ganske nyttige for konvertering til basedatatypen eller omvendt. Noen av de støttede datatypene er Char, Boolean, Int32, int64, Double, Decimal, String, Int16, etc. Convert-klasse støtter også metoder for andre konverteringer.
Konverter til streng
Convert.ToString-metoden konverterer en datatype til en streng. I eksempel nedenfor konverterer vi en heltall datatype til en streng datatype.
int number = 75; string s = Convert.ToString(number);
InvalidCastException
Noen ganger er det mulig at kompilatoren kanskje ikke forstår om operasjonen som er utført for å konvertere en type til en annen, er gyldig eller ikke. Dette fører til at kompilatoren mislykkes i løpet av kjøretiden. Når typekonverteringen mislykkes, vil den kaste et ugyldig unntak.
InvalidCastException kastes når en eksplisitt implementering eller typekonvertering ikke støttes av begge datatypene som brukes til konvertering.
Konklusjon
I denne veiledningen lærte vi hvilke typer konvertering og hvordan vi kan utføre en konvertering mellom forskjellige datatyper. Implisitt konvertering er konvertering der en avledet klasse konverteres til en basisklasse som int til en flytype.
Eksplisitt konvertering er konvertering som kan forårsake tap av data. Eksplisitt konvertering konverterer basisklassen til den avledede klassen. Vi kan trenge å utføre konverteringen på forskjellige andre datatyper for å gjøre det vi tar hjelp av hjelperklassen. Hjelperklasse som 'Parse' og 'ConvertTo' tilbyr forskjellige måter å konvertere en datatype til en annen.
Vi lærte også om unntaket som kompilatoren vil kaste når den ikke forstår konvertering mellom to typer.
=> Se etter Easy C # Training Guide her
Anbefalt lesing
- C # Datatyper og variabler med eksempler
- C ++ datatyper
- Skriv konverteringer i C ++
- Data Mining: Prosess, teknikker og store problemer i dataanalyse
- Data Mart Tutorial - Typer, eksempler og implementering av Data Mart
- Typer av migrasjonstesting: Med testscenarier for hver type
- 10+ beste datainnsamlingsverktøy med strategier for datainnsamling
- Data Pool Feature i IBM Rational Quality Manager for Test Data Management