2009-09-30 11 views

Répondre

13

Convert.ToInt32() va tenter de convertir n'importe quoi - que ce soit char, double, objet, que voulez-vous - dans un Int32. Int32.Parse() ne fonctionne que pour les chaînes.

EDIT: En réponse au commentaire de l'OP, j'ai une citation tirée from this thread:

Fondamentalement, la classe Convert rend plus facile de convertir entre toute la base types.

Le Convert.ToInt32 (String, IFormatProvider) sous-appelle le Int32.Parse. Donc, la seule différence est que si une chaîne nulle est passée à Convertit renvoie 0, alors que Int32.Parse lève une ArgumentNullException . Il s'agit vraiment d'une question de choix selon votre choix.

+1

http://arun-ts.blogspot.com/2008/05/convertint32-vs-int32parse.html – madcolor

+0

Vous pouvez également par exemple: 'Convert.ToInt32 ('9')' aboutira à 57 (la valeur ascii) où 'Convert.ToInt32 (" 9 ")' aboutira à 9. S'il y a une conversion implicite alors la conversion sera utilisée. –

+0

Salut, Matthew. Si j'ai une valeur de chaîne et que j'ai besoin de la convertir en valeur entière, alors quel est le meilleur à utiliser ... – Vijjendra

2

Convert.ToInt32 convertira null en 0; Int32.Parse lèvera une exception si vous le transmettez null. En outre, as Matthew Jones said, Int32.Parse ne fonctionne que pour les chaînes.

Voir this article pour plus d'informations

4

expansion sur la réponse de Matthieu.

Convert.ToInt32 permet des conversions définies par l'utilisateur d'une manière extensible. Pour toute conversion non prédéfinie (principalement des primitives), la classe Convert vérifie et vérifie si le type implémente IConventible et, si c'est le cas, l'utilise pour permettre à l'objet de définir sa propre conversion en Int32 (et de nombreux autres types).

0

Selon MSDN Parse() est utilisé pour la chaîne à int où Convert est beaucoup plus polyvalent pour les conversions.

Int32.Parse()

Convert.Int32() devrait être votre choix principal

Questions connexes