In C# äquivalent ist, gibt es eine implizite Konvertierung von char nicht int (aber nicht das Gegenteil). So int x = 'a';
kompiliert. Tatsächlich wandelt der Compiler Ihren Code in etwas anderes um. Hier und Original-Code und der Code generiert durch den Compiler:
Anwendercode:
string[] strArr = { "SOMETHING", "ELSE", "HERE" };
char left = 'B';
char right = 'A';
int index = left - right;
var a = strArr[index];
generiert Compiler Code:
string[] strArr = { "SOMETHING", "ELSE", "HERE" };
char c = 'B';
char c2 = 'A';
int num = (int)c - c2; // 66 - 65
string text = array[num];
Ich schrieb einen Details answer über diese eine Woche unterwegs. Hör zu.
warum downvotes? Ich habe den Code nicht gemacht, ich versuche nur, das Durcheinander eines anderen herauszufinden. –
Ich habe gerade gestimmt. Ich kann nicht stehen, wenn Leute abstimmen, weil sie denken, dass du etwas wissen solltest, das du nicht weißt. Kein Grund zur Abstimmung. Und niemand weiß alles. –
UND Sie haben gerade eine enge Abstimmung für "warum funktioniert dieser Code nicht" ... was natürlich nicht Ihre Frage war.Update: Es ist jetzt weg :) –