Okay, ich bin in einem Code auf diesen Code gestoßen, den ein Mitarbeiter gerade angefangen hat zu unterstützen. Ich habe noch nie so etwas getan und würde es nicht tun, aber ich war erstaunt, dass der Compiler es nicht als Fehler markiert hat.C# array index type checking
Grundsätzlich können Sie die „seltsame“ Verhalten mit diesem kleinen Schnipsel sehen:
array[3/4] = 3;
Dies obwohl 3/4 erlaubt ist, glaube ich, würde eine doppelte zurückzukehren. Wenn Sie es ändern:
array[3.0/4] = 3;
Sie tun einen Compiler-Fehler erhalten.
Ich nehme an, die erste erstellt keinen Compiler-Fehler, weil es Integer-Division und gibt eine ganze Zahl zurück.
Ich hoffe, Sie ändern diesen Code. (Ich nehme an, der ursprüngliche Code verwendet Variablen und nicht hart-codiert 3/4.) Dies ist eine Einladung für Fehler. Ich wünschte, ich könnte es aufheben. – Eli
Der ursprüngliche Code war eigentlich dieses Array [Variable * 3/4] und es hat getan, was erforderlich war, aber ich mag es nicht und hätte es nie auf diese Weise selbst codiert. –