2009-08-30 4 views
2

Quelle est la différence entre Cast & Convert in C# 2008?Cast and Convert

+0

Cette question est très très vague. Dans quel contexte? Parlez-vous des opérateurs de conversion? – nawfal

+0

duplication possible de [est-casting-le-même-chose-comme-conversion] (http://stackoverflow.com/questions/143997/visualisation-de-la-same-thing-as-converting) – nawfal

Répondre

3

Cast vous permettra de convertir certains types de données en toute sécurité, par exemple . double-> int

double a = 3.5; 
int b = (int) a; //fraction will be truncated 

Ici, cast prend la représentation binaire de 3.5 et la met en représentation entière. Comme entier n'a pas de fractions, il est supprimé et également autorisé. Envoyer une chaîne à un entier de cette manière n'est pas si simple et n'est pas autorisé par le compilateur.

Convertir est plus intelligent et convertir plus de types de données de l'un à l'autre, par ex. string -> booléen

string myString = "true"; 
bool myBool = Convert.ToBoolean(myString); 

Also see this stackoverflow discussion on this topic.

-1

Cast est généralement plus lent, et peut faire implict et opérateurs converion explicite

+4

Je serais intéressé de savoir pourquoi vous prétendez que la distribution est plus lente? Regardez l'implémentation de Convert.ToInt32 (double valeur). Il finit par faire un casting interne et des opérations supplémentaires. –

0

Une différence est des méthodes Convertir permettent la mise en forme spécifique (ie. IFormatProvider)