Warum ist in C # "long" als Array-Länge zulässig?
Ich wollte versuchen, ein 4-Milliarden-Byte-Array zuzuweisen, und das ist mein C # -Code:
long size = 4 * 1000;
size *= 1000;
size *= 1000;
byte[] array = new byte[size];
Dieser Code schlägt mit fehlSystem.OverflowException
in der Zeile mitnew
. Okay, stellt sich herausLength
kehrt zurückint
, also ist die Arraylänge auch auf was begrenztint
kann speichern.
Warum gibt es dann keinen Kompilierungsfehler undlong
darf als Anzahl der Array-Elemente bei der Zuordnung verwendet werden?