Il y a beaucoup de façons différentes exprimés en C#.
Cela va essayer de transformer la référence en une référence de chaîne.Si la distribution échoue, elle déclenche une exception:
string text = (String) variable;
Cette opération tente de transformer la référence en référence de chaîne. Si la distribution échoue, il renvoie une référence null à attribuer à la variable:
string text = varible as String;
Cela jeté une référence de chaîne à une référence d'objet, qui est une coulée en toute sécurité sous forme de chaîne hérite de l'objet:
object text = (object)"1337";
casting à une classe parent peut également être fait implicitement:
object text = "1337";
Cela boîte une valeur à l'intérieur d'un objet, unbox alors à une valeur simple encore:
int value = 42;
object boxed = (object)value;
int valueAgain = (int)boxed;
La boxe peut également être fait implicitement:
int value = 42;
object boxed = value;
int valueAgain = (int)boxed;
Cela fera une conversion élargissement de l'octet int:
byte a = 42;
int b = (int)a;
Les mêmes œuvres que d'une conversion implicite:
byte a = 42;
int b = a;
Cela va faire un rétrécissement conv ersion de int à l'octet, jeter le trop-plein:
int a = 512;
byte b = (byte)a; // b now contains 0
Voir http://stackoverflow.com/questions/2483/ –
http://stackoverflow.com/questions/2139798/why-is-the-c -as-operator-so-popular –