Was ist der Unterschied zwischen const
y readonly
in C#?
Wann würden Sie das eine dem anderen vorziehen?
Was ist der Unterschied zwischen const
y readonly
in C#?
Wann würden Sie das eine dem anderen vorziehen?
Eine Konstante wird in den Verbraucher als Literalwert kompiliert, während die statische Zeichenfolge als Verweis auf den definierten Wert dient.
Versuchen Sie zu Übungszwecken, eine externe Bibliothek zu erstellen und sie in einer Konsolenanwendung zu verwenden. Ändern Sie dann die Werte in der Bibliothek und kompilieren Sie sie neu (ohne das Verbraucherprogramm neu zu kompilieren), legen Sie die DLL im Verzeichnis ab und führen Sie die EXE manuell aus, Sie sollten feststellen, dass sich die konstante Zeichenfolge nicht ändert.
Der Unterschied besteht darin, dass der Wert eines statischen Readonly-Feldes zur Laufzeit festgelegt wird, so dass er bei verschiedenen Programmausführungen einen anderen Wert haben kann. Der Wert eines const-Feldes hingegen wird zur Kompilierzeit auf eine Konstante gesetzt.
Erinnern Sie sich: Bei Referenztypen verhindert der readonly-Modifikator in beiden Fällen (statisch und instanziell) nur, dass Sie dem Feld eine neue Referenz zuweisen. Er macht das Objekt, auf das die Referenz zeigt, nicht unveränderlich.
Einzelheiten hierzu finden Sie in den häufig gestellten C#-Fragen zu diesem Thema: http://blogs.msdn.com/csharpfaq/archive/2004/12/03/274791.aspx
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.