CS0133 "Der Ausdruck, der 'bezeichner' zugewiesen wird, muss konstant sein" - was ist der Grund dafür?

it viel C ++ Hintergrund habe ich mich daran gewöhnt, folgendes zu schreiben:

const int count = ...; //some non-trivial stuff here
for( int i = 0; i < count; i++ ) {
   ...
}

und ich erwartete, dass das gleiche in C # gut funktionieren würde. Jedoch..

byte[] buffer = new byte[4];
const int count = buffer.Length;

produceserror CS0133: Der Ausdruck, der 'count' zugewiesen wird, muss konstant sein.

Ich verstehe es nicht. Warum ist das ungültig?int ist ein Wertetyp, nicht wahr? Warum kann ich keinen Wert zuweisen und die Variable auf diese Weise unveränderlich machen?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage