c type casting explicit implicit data conversion with example
Datatypgjutning i C # med exempel: Denna handledning förklarar Explicit & Implicit Conversion, Convert to String & Data Type Conversion Using Helper Classes:
Datatyper och variabler i C # förklarades i detalj i vår tidigare handledning.
Vi lärde oss hur en datatyp kan konverteras till en annan datatyp med hjälp av typgjutning. Typprognos är uppdelad i två delar, dvs Implicit och Explicit Conversion.
Låt oss gräva djupare in i C # Type Casting i denna handledning.
hur man hittar säkerhetsnyckel för wifi
=> Leta efter Easy C # Training Guide här
Det är implicit konvertering när en mindre datatyp konverteras till en större datatyp eller härledd klass till en basklass.
Å andra sidan kallas omvandlingen i motsatt riktning som uttrycklig omvandling. Det behöver en cast-operatör för att konvertera högre datatyp till en mindre datatyp. Denna typ av konvertering är inte typsäker och kan leda till förlust av data.
Vad du kommer att lära dig:
Gjutning av datatyp i C #
I denna handledning kommer vi att diskutera i detalj hur en typ av data kan konverteras till en annan datatyp. C # är statisk typ under kompilering, vilket betyder att det efter deklarationen av en variabel inte kan användas för att lagra värden av någon annan datatyp.
Detta kan dock övervinnas genom att konvertera den typen till en variabel typ.
hur man skapar en kö i java
Låt oss försöka konvertera ett strängvärde till ett heltal.
int a; a = 'some random string';
Om vi sammanställer detta kommer det att kasta ett fel som säger att 'Kan inte implicit konvertera typ 'sträng' till 'int'.'
Datatyper kan delas vidare baserat på datatyper.
- Primitiv
- Icke-primitiv
Primitiva datatyper är fördefinierade medan icke-primitiva datatyper är användardefinierade. Datatyper som byte, int, kort, float, long, char, bool, etc kallas primitiva datatyper. Icke-primitiva datatyper inkluderar klass, enum, array, delegat, etc.
I denna handledning kommer vi att undersöka de olika metoderna som C # erbjuder för typprognosering.
Implicit konvertering
Implicit konvertering är den enklaste typen av konvertering. Denna typ av konvertering är typsäker och ingen dataförlust inträffar under konvertering. Dessa omvandlingar handlar om att konvertera en härledd klass till basklass.
Till exempel, vi kan direkt använda implicit konvertering om värdet som behöver lagras i en annan variabel kan passa direkt utan dataförlust. Låt oss säga att vi har ett 'heltal' -värde och vi vill överföra det värdet till ett 'långt'.
int i = 75; long j = i;
Explicit omvandling
Vid implicit konvertering såg vi att vi direkt kan konvertera en härledd klass till basklass utan att förlora några data, men om det finns en risk för dataförlust kommer kompilatorn att behöva utföra en explicit konvertering.
Explicit konvertering eller cast är en process för att överföra information till kompilatorn som programmet försöker utföra konvertering med kunskap om möjlig dataförlust.
Till exempel, om vi konverterar ett högre numeriskt värde till ett lägre.
double d = 75.25; int i; i = (int)d;
Om du nu skriver ut 'i' kommer du att upptäcka att det kommer att skriva ut '75'. All data efter decimal kommer att gå förlorad i konverteringen.
Konvertering med olika hjälpklasser
För att konvertera mellan olika icke-kompatibla typer som att konvertera en sträng till ett nummer eller en byte-array till ett heltal eller till och med hexadecimala strängar till andra numeriska typer, behöver vi olika hjälpklasser eftersom en direkt konvertering inte är möjlig.
En datatyp kan konverteras till en annan datatyp med metoder som finns i konverteringsklassen eller med en TryParse-metod som är tillgänglig för de olika siffertyperna. TryParse är mer användbart om vi konverterar en sträng till siffran. Det är ganska enkelt och effektivt.
int number = Int32.Parse(“123”);
Här konverterade vi en sträng till ett heltal genom att använda analysera.
vad är funktionstestning med exempel
Låt oss titta på en annan konverteringsmetod som är konverteringsmetoden.
Statiska metoder finns inne i Konvertera klass är ganska användbara för konvertering till basdatatyp eller vice versa. Några av de datatyper som stöds är Char, Boolean, Int32, int64, Double, Decimal, String, Int16, etc. Convert class stöder också metoder för andra konverteringar.
Konvertera till sträng
Metoden Convert.ToString konverterar en datatyp till en sträng. I exempel nedan konverterar vi en heltal datatyp till en strängdatatyp.
int number = 75; string s = Convert.ToString(number);
InvalidCastException
Ibland är det möjligt att kompilatorn kanske inte förstår om operationen för att konvertera en typ till en annan är giltig eller inte. Detta gör att kompilatorn misslyckas under körningstiden. När typkonverteringen misslyckas, kommer den att kasta ett ogiltigt undantag.
InvalidCastException kastas när en uttrycklig implementering eller typkonvertering inte stöds av båda datatyperna som används för konvertering.
Slutsats
I den här handledningen lärde vi oss om typ av konvertering och hur man utför en konvertering mellan olika datatyper. Implicit konvertering är den konvertering där en härledd klass omvandlas till en basklass som int till en flottörtyp.
Explicit konvertering är den konvertering som kan orsaka dataförlust. Explicit omvandling omvandlar basklassen till den härledda klassen. Vi kan behöva utföra konverteringen på olika andra datatyper, för att göra det tar vi hjälp av hjälpklassen. Hjälpklass som 'Parse' och 'ConvertTo' erbjuder olika sätt att konvertera en datatyp till en annan.
Vi lärde oss också om undantaget som kompilatorn kommer att kasta när den inte förstår konvertering mellan två typer.
=> Leta efter Easy C # Training Guide här
Rekommenderad läsning
- C # Datatyper och variabler med exempel
- C ++ datatyper
- Skriv omvandlingar i C ++
- Data Mining: Process, Techniques & Major Issues In Data Analysis
- Data Mart Tutorial - Typer, exempel och implementering av Data Mart
- Typer av migreringstest: Med testscenarier för varje typ
- 10+ bästa datainsamlingsverktyg med strategier för datainsamling
- Data Pool Feature i IBM Rational Quality Manager för testdatahantering