Gibt es einen Vorteil, eine Konstante in einem lokalen Bereich in C # zu deklarieren?

7

Gibt es einen Vorteil, eine lokale Variable als "const" zu deklarieren, wenn ich weiß, dass ich ihren Wert nicht ändern werde?

Danke,

    
pencilCake 03.09.2010, 13:49
quelle

7 Antworten

5

Sie würden normalerweise eine Konstante für Ihre gesamte Lösung verwenden. Aber die Vorteile für die Verwendung in einem lokalen Bereich wären, dass Sie einen anderen Ort in Ihrem Bereich kennen, den Sie nicht ändern werden. Und auch wenn jemand anders an diesem Code arbeitet, wird er es auch nicht ändern. Dies macht Ihr Programm wartbarer, weil Sie nur die Konstante beibehalten müssen (auch wenn es nur in einem lokalen Bereich ist)

    
Spooks 03.09.2010, 13:52
quelle
5

Wenn die Variable const deklariert wird, kann der Compiler auch Optimierungen vornehmen. Anstatt beispielsweise einen int auf dem Stack zuzuordnen und seinen Wert dort zu platzieren, kann der Compiler den Wert direkt mit Ihrem Code verwenden.

dh Folgendes:

%Vor%

Könnte als

kompiliert werden %Vor%

vom Compiler

Bearbeiten: Antworten Sie auf "konstante Propagierung", da das Kommentarfeld eine Größenbeschränkung hat

Verwenden Sie ildasm, um zwischen const und none const für die Freigabe mit Optimierung zu überprüfen:

Der Code

%Vor%

Kompiliert zu

%Vor%

Während

%Vor%

wird auf

optimiert %Vor%

Dies verwendet 2010 in Release mit Optimierungen.

Ich habe eine Suche durchgeführt, um mehr über die konstante Propagierung zu erfahren, und wenn es möglich ist, macht der aktuelle Compiler das nicht wie erwähnt hier

    
JLWarlow 03.09.2010 13:57
quelle
3

Ja. Sie schützen Ihren Code davor, diese Variable versehentlich zu ändern.

    
user151323 03.09.2010 13:50
quelle
3

Ich mache das gerne, wenn ich einen booleschen Flag-Indikator an eine Methode übergebe:

%Vor%

Dies ist für mich besser lesbar als ein einfaches Wahr / Falsch, das das Lesen der Methodendeklaration erfordert, um die Bedeutung zu bestimmen.

    
Dan Bryant 03.09.2010 13:58
quelle
2

Wenn Sie local als const deklarieren, kann der Compiler Ihre Absicht kennen, so dass Sie den Wert Ihrer Variablen nicht anderswo in Ihrer Funktion ändern können.

    
Jake Pearson 03.09.2010 13:51
quelle
1

Neben den gültigen Antworten teilen Sie dem Compiler nicht nur mit, dass sich der Wert nicht ändern wird, sondern Sie sagen schnell jedem anderen, der sich Ihren Code ansieht.

    
Paul Hadfield 03.09.2010 13:52
quelle
0

Je nach Anwendungsfall ..

Zum Beispiel

%Vor%

in diesem Fall denke ich, const Erklärung ist bedeutungslos

    
abatishchev 03.09.2010 13:56
quelle

Tags und Links