Ich versuche, etwas VB.NET Code zu C # zu verdecken und fand dieses interessante Ding. Das Hinzufügen von zwei Zeichen gibt unterschiedliche Ergebnisse in VB.NET und C # zurück.
VB.NET - gibt die Zeichenfolge
zurück %Vor%C # - gibt int
zurück %Vor%Wie kann ich zwei Zeichen in C # hinzufügen (verketten)?
In C # char
ist ein numerischer 16-Bit-Typ , also +
bedeutet Addition, keine Verkettung. Wenn Sie also a
und b
hinzufügen, erhalten Sie a+b
. Außerdem ist das Ergebnis dieser Ergänzung ein int
( siehe eine kurze Demo ).
Wenn Sie "zwei Zeichen hinzufügen" mit "Verkettung" meinen, können Sie sie in Strings konvertieren, bevor Sie den Operator +
anwenden. Eine andere Option wäre string.Format
, wie folgt zu verwenden:
Wenn Sie eine leere Zeichenfolge hinzufügen, können Sie die "Umwandlung" von char
in string
... So
(technisch gesehen ist es keine Konvertierung. Der Compiler weiß, dass wenn man zu string
hinzufügt, er etwas Zauberei machen muss ... Wenn du null
zu einer Zeichenkette hinzufügst, betrachte es die null
Um ein leerer String zu sein, wenn du versuchst, string
hinzuzufügen, tut es string.Concat
und wenn du versuchst, etwas anderes hinzuzufügen, macht es .ToString()
für das Nicht-String-Mitglied und dann string.Concat
)
(char) (1) hat einen ASCII-Wert von 1 und (char) (2) ascii-Wert von 2
, so dass ein ASCII-Wert von 1 + 2 (d. h. (char) 1 + (char) 2) gleich 3 ist.
wenn Sie Folgendes tun: "2" + "1" das wird dir "21" geben (du solltest das nicht benutzen, um Strings zu verbinden, schlechte Übung)
wenn Sie Folgendes tun: '2' + '1' Dies ergibt einen int-Wert von 99, dh ein ascii-Wert von 2 (was 50 ist) + ascii-Wert von 1 (was 49 ist).