Avatar ·

Static readonly vs const in C#: wann was verwenden?

Hallo zusammen! Ich bin ein Anfänger C#-Entwickler und mich quält eine Frage: Was ist der Unterschied zwischen `static readonly` und `const`? Ich verstehe, dass beide verwendet werden, um unveränderliche Werte zu deklarieren, aber wann man was anwendet – ich habe keine Ahnung.\n\nHier ist ein Beispiel: Ich schreibe eine Klasse für die Arbeit mit mathematischen Formeln. Ich muss die Zahl Pi und die Anzahl der Nachkommastellen für die Ausgabe von Ergebnissen deklarieren. Ich habe es so gemacht:\n\n```csharp\npublic class MathHelper\n{\n public const double Pi = 3.14159;\n public static readonly int Precision = 3;\n}\n```\n\nAber dann sagte ein anderer Entwickler, dass `const` für `Pi` in Ordnung sei, aber `static readonly` für `Precision` seltsam sei. Warum? Beide Werte ändern sich doch nicht. Und außerdem ist mir aufgefallen, dass, wenn ich `const` in einem anderen Projekt verwende, nachdem ich den Wert in dieser Assembly geändert habe, die andere...