Zwischen meinen Teammitgliedern gibt es eine Debatte über die Deklaration einer Constants-Klasse. Wir verschieben die konstanten Variablen in eine separate Klasse wie unten.
public class Constants
{
public const string StateId = "ST";
public const string CountryId = "CI";
}
Einige meiner Teammitglieder schlugen vor, die Klasse als versiegelt zu deklarieren, um ein Überschreiben der Option zu vermeiden, und einige schlagen vor, sie als statisch zu markieren, um die Instanzerstellung der Constant-Klasse zu vermeiden.
Ich bevorzuge es jedoch, es mit einem statischen Konstruktor als Sealed zu haben, da es uns helfen wird, die schreibgeschützten Variablen in Zukunft zu initialisieren. Bitte geben Sie uns hierzu einen Rat.
static
. Dies ist völlig orthogonal zum Vorhandensein oder Fehlen eines statischen Konstruktors.Antworten:
Es ist nicht ganz klar, was Ihre Frage ist, aber wenn die Werte wirklich konstant sind, sehe ich kein Problem mit der einfachen Option:
Die Verwendung
static
in der Klassendeklaration signalisiert Ihre Absicht für den Zweck dieser Klasse.Marc Gravell beschreibt einige der potenziellen Probleme mit Konstanten in dieser Stack Overflow-Antwort . Nur Sie werden wissen, ob dies ein Problem in Ihrer Codebasis ist. Wenn sich die Werte jedoch ändern könnten , verwenden Sie
public static readonly
stattdessenconst
. Andernfalls muss der Code, der sich auf die Konstanten bezieht, neu erstellt werden, wenn sich die Werte ändern.quelle
const
. Der Leistungszuwachs ist normalerweise nicht das Risiko potenzieller Probleme in der Zukunft wert, IMHO. Ich bevorzuge die Verwendung vonpublic static readonly
Variablen für Konstanten.