Contenu du cours
Bases de C#
Bases de C#
Conversion de Type de Base
Le casting de type est le processus de conversion d'une valeur d'un type de données à un autre. Cela est souvent possible entre les types qui représentent des nombres. Par exemple, vous pouvez convertir un float
en int
et vice versa. Cependant, convertir une string
directement en int
n'a pas de sens logique et n'est pas possible sans étapes supplémentaires.
Il existe deux types de casting de type : casting de type implicite et casting de type explicite.
Le casting de type implicite se produit automatiquement lorsqu'une valeur est convertie d'un type à un autre, généralement d'un type de données plus petit à un type plus grand.
main
int val1 = 10; long val2 = val1; // int is automatically converted to long float val3 = var1; // int is automatically converted to float double var4 = var1; // int is automatically converted to double
Le casting de type implicite se produit automatiquement lorsqu'un type de données plus petit est converti en un type plus grand. La taille d'un type de données est déterminée par la quantité de données qu'il peut contenir, mesurée en bits. Par exemple, un int
peut contenir 32 bits, tandis qu'un long
peut contenir 64 bits, donc la conversion d'un int
en long
se fait automatiquement. De même, un float
peut être converti en double
sans aucun problème.
Voici une liste de types de données classés du plus petit au plus grand :
char
-> int
-> long
-> float
-> double
Le casting de type explicite est lorsque vous, en tant que programmeur, dites à l'ordinateur de convertir une valeur en un type de données différent. Cela est nécessaire lors de la conversion d'un type de données plus grand en un plus petit car certaines données pourraient être perdues. Par exemple, convertir le 3.14
en un entier donne 3
, perdant la partie décimale. C'est pourquoi vous devez explicitement dire à l'ordinateur de faire de telles conversions.
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = val1; // Error: Cannot implicitly convert type 'float' to 'int'. An explicit conversion exists (are you missing a cast?) Console.WriteLine(val1); Console.WriteLine(val2); } } }
Pour corriger l'erreur dans le code ci-dessus, nous devons convertir explicitement val1
en une valeur entière.
La syntaxe d'un cast est (datatype) value
, par exemple (int) 3.1415
. Donc, dans ce cas, nous écrirons (int) val1
:
main
using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = (int) val1; Console.WriteLine(val1); Console.WriteLine(val2); } } }
Merci pour vos commentaires !