C# Type conversie
Conversie van C#-type
In deze zelfstudie leren we over de conversie van het C#-type en de typen ervan aan de hand van voorbeelden.
Het proces van het converteren van de waarde van het ene type (int, float, double, etc.) naar een ander type staat bekend als typeconversie.
In C# zijn er twee basistypen typeconversie:
- Impliciete typeconversies
- Expliciete typeconversies
1. Impliciete typeconversie in C#
Bij impliciete typeconversie converteert de C#-compiler automatisch het ene type naar het andere.
Over het algemeen kleinere typen zoals int
(met minder geheugen) worden automatisch geconverteerd naar grotere typen zoals double
(met een grotere geheugengrootte).
Voorbeeld:impliciete typeconversie
using System;
namespace MyApplication {
class Program {
static void Main(string[] args) {
int numInt = 500;
// get type of numInt
Type n = numInt.GetType();
// Implicit Conversion
double numDouble = numInt;
// get type of numDouble
Type n1 = numDouble.GetType();
// Value before conversion
Console.WriteLine("numInt value: "+numInt);
Console.WriteLine("numInt Type: " + n);
// Value after conversion
Console.WriteLine("numDouble value: "+numDouble);
Console.WriteLine("numDouble Type: " + n1);
Console.ReadLine();
}
}
}
Uitvoer
numInt value: 500 numInt Type: System.Int32 numDouble value: 500 numDouble Type: System.Double
In het bovenstaande voorbeeld hebben we een int
. gemaakt type variabele genaamd numInt .
Let op de lijn,
// Implicit Conversion
double numDouble = numInt;
Hier wijzen we de int
. toe typ variabele naar een double
variabele typen. In dit geval converteert de C#-compiler automatisch de int
typ waarde in double
.
Merk op dat we de GetType()
. hebben gebruikt methode om het type numInt
. te controleren en numDouble
variabelen.
Opmerking :Bij impliciete typeconversie worden kleinere typen geconverteerd naar grotere typen. Er is dus geen verlies van gegevens tijdens de conversie.
2. C# Expliciete Type Conversie
Bij expliciete typeconversie converteren we expliciet het ene type naar het andere.
Over het algemeen grotere typen zoals double
(met een groot geheugen) worden geconverteerd naar kleinere typen zoals int
(met een kleine geheugengrootte).
Voorbeeld:expliciete typeconversie
using System;
namespace MyApplication {
class Program {
static void Main(string[] args) {
double numDouble = 1.23;
// Explicit casting
int numInt = (int) numDouble;
// Value before conversion
Console.WriteLine("Original double Value: "+numDouble);
// Value before conversion
Console.WriteLine("Converted int Value: "+numInt);
Console.ReadLine();
}
}
}
Uitvoer
Original double value: 1.23 Converted int value: 1
In het bovenstaande voorbeeld hebben we een double
. gemaakt variabele genaamd numDouble . Let op de lijn,
// Explicit casting
int numInt = (int) numDouble;
Hier, (int)
is een gecaste uitdrukking dat expliciet de double
. converteert typ naar int
typ.
We kunnen zien dat de oorspronkelijke waarde 1,23 . is terwijl de omgerekende waarde 1 . is . Hier gaan enkele gegevens verloren tijdens de typeconversie. Dit komt omdat we expliciet het grotere gegevenstype double
. converteren naar een kleiner type int
.
Opmerking :De expliciete typeconversie wordt ook typecasting genoemd.
C# Type Conversie met Parse()
In C# kunnen we ook de Parse()
. gebruiken methode om typeconversie uit te voeren.
Over het algemeen geldt dat tijdens het uitvoeren van typeconversie tussen niet-compatibele typen zoals int
en string
, we gebruiken Parse()
.
Voorbeeld:Type Conversie met Parse()
using System;
namespace Conversion {
class Program {
static void Main(string[] args) {
string n = "100";
// converting string to int type
int a = int.Parse(n);
Console.WriteLine("Original string value: "+n);
Console.WriteLine("Converted int value: "+a);
Console.ReadLine();
}
}
}
Uitvoer
Original string value: 100 Converted int value: 100
In het bovenstaande voorbeeld hebben we een string
. geconverteerd typ naar een int
typ.
// converting string to int type
int a = int.Parse(n);
Hier, de Parse()
methode converteert de numerieke tekenreeks 100 naar een geheel getal.
Opmerking :We kunnen Parse()
niet gebruiken om een tekstuele string zoals "test" te converteren naar een int
. Bijvoorbeeld,
String str = "test";
int a = int.Parse(str); // Error Code
C# Type Conversie met Convert Class
In C# kunnen we de Convert
. gebruiken class om typeconversie uit te voeren. De Convert
class biedt verschillende methoden om het ene type naar het andere te converteren.
Methode | Beschrijving |
ToBoolean() | converteert een type naar een Boolean waarde |
ToChar() | converteert een type naar een char typ |
ToDouble() | converteert een type naar een double typ |
ToInt16() | converteert een type naar een 16-bits int typ |
ToString() | converteert een type naar een string |
Laten we eens kijken naar enkele voorbeelden:
Voorbeeld:converteer int naar String en Double
using System;
using System;
namespace Conversion {
class Program {
static void Main(string[] args) {
// create int variable
int num = 100;
Console.WriteLine("int value: " + num);
// convert int to string
string str = Convert.ToString(num);
Console.WriteLine("string value: " + str);
// convert int to Double
Double doubleNum = Convert.ToDouble(num);
Console.WriteLine("Double value: " + doubleNum);
Console.ReadLine();
}
}
}
Uitvoer
int value: 100 string value: 100 Double value: 100
In het bovenstaande voorbeeld,
- Convert.ToString(a) - converteert een
int
typ num totstring
- Convert.ToDouble(a) - converteert num naar de
Double
typ
Voorbeeld:tekenreeks converteren naar Double en vice versa
using System;
namespace Conversion {
class Program {
static void Main(string[] args) {
// create string variable
string str = "99.99";
Console.WriteLine("Original string value: " + str);
// convert string to double
Double newDouble = Convert.ToDouble(str);
Console.WriteLine("Converted Double value: " + newDouble);
// create double variable
double num = 88.9;
Console.WriteLine("Original double value: " + num);
// converting double to string
string newString = Convert.ToString(num);
Console.WriteLine("Converted string value: " + newString);
Console.ReadLine();
}
}
}
Uitvoer
Original string value: 99.99 Converted Double value: 99.99 Original double value: 88.9 Converted string value: 88.9
In het bovenstaande voorbeeld,
- Convert.ToDouble(str) - converteert een
string
typ str totDouble
- Convert.ToString(num) - converteert een
double
typ num naar destring
Voorbeeld 3:converteer int naar Boolean
using System;
namespace Conversion {
class Program {
static void Main(string[] args) {
// create int variables
int num1 = 0;
int num2 = 1;
// convert int to Boolean
Boolean bool1 = Convert.ToBoolean(num1);
Boolean bool2 = Convert.ToBoolean(num2);
Console.WriteLine("Boolean value of 0 is: " + bool1);
Console.WriteLine("Boolean value of 1 is: " + bool2);
Console.ReadLine();
}
}
}
Uitvoer
Boolean value of 0 is: False Boolean value of 1 is: True
In het bovenstaande voorbeeld hebben we twee integer-variabelen gemaakt:num1
en num2
met waarden 0 en 1 respectievelijk. Hier,
- Convert.ToBoolean(num1) - converteert 0 naar een
Boolean
waardeFalse
- Convert.ToBoolean(num2) - converteert 1 naar een
Boolean
waardeTrue
Opmerking :In C#, de integerwaarde 0 wordt beschouwd als False
en alle andere waarden worden beschouwd als True
.
C Taal