2010-09-08 9 views

Répondre

14

Il retourne la valeur ASCII du caractère 1

La première déclaration traite l'argument sous forme de chaîne et convertit la valeur en Int, Le second traite l'argument en tant que char et retourne sa valeur ascii

2

Le code '1' est le même que (char)49 (car le point de code Unicode du caractère 1 est 49). Et Convert.ToInt32(char) renvoie le point de code de ce caractère en tant que int.

1

Comme d'autres l'ont déjà indiqué: Dans votre deuxième exemple ('1') vous utilisez un littéral char. Un char est un type numérique. Il n'y a pas d'analyse effectuée comme dans l'exemple de chaîne ("1"), car il s'agit déjà d'un nombre - il s'agit simplement d'une conversion à un format numérique plus large (de 16 bits à 32 bits).

2

Comme l'ont dit les autres, Convert retourne le code ASCII. Si vous voulez convertir '1'-1 (int) vous devez utiliser

int val = Convert.ToInt32('1'.ToString()); 
+0

Génial :) :) :) :) – Aravin

1

Il traite « 1 » en tant que forme char et int de tout caractère est son équivalent ASCII il retourne son équivalent ASCII. Mais dans le cas de "1", il traite comme une chaîne et le convertir en entier.

Questions connexes