2010-09-08 7 views

Antwort

14

Es ist der ASCII-Wert von Zeichen 1

Die erste Anweisung behandelt das Argument als String und wandelt den Wert in Int Rückkehr Das zweite behandelt das Argument als char und gibt ihre ASCII-Wert

2

Der Code '1' ist derselbe wie (char)49 (weil der Unicode-Codepunkt des Zeichens 1 49 ist). Und Convert.ToInt32(char) gibt den Codepunkt dieses Zeichens als int zurück.

1

Wie bereits erwähnt: In Ihrem zweiten Beispiel ('1') verwenden Sie ein char Literal. A char ist ein numerischer Typ. Es wird kein Parsing wie im String-Beispiel ("1") durchgeführt, da es bereits eine Zahl ist - nur eine Umwandlung in ein breiteres Zahlenformat (von 16 Bit bis 32 Bit).

2

Wie die anderen sagten, gibt Convert den ASCII-Code zurück. Wenn Sie '1'-1 (int) konvertieren, sollten Sie

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

Awesome :) :) :) :) – Aravin

1

Es behandelt ‚1‘ als char und int Form eines beliebigen Zeichen ist sein ASCII-Äquivalent, damit es seine ASCII-Äquivalent zurück. Aber im Fall von "1" behandelt es es als Zeichenfolge und konvertiert es in Ganzzahl.