it-swarm.com.de

Schlagen Sie eine bewährte Methode zum Erstellen der Konstantenklasse vor

Zwischen meinen Teammitgliedern gibt es eine Debatte über die Deklaration einer Konstantenklasse. 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 versiegelt zu haben, da es uns helfen wird, die schreibgeschützten Variablen in zukünftigen Anforderungen zu initialisieren. Bitte geben Sie uns hierzu einen Rat.

28
user46506

Es ist nicht ganz klar, was Ihre Frage ist, aber wenn die Werte wirklich konstant sind, sehe ich kein Problem mit der einfachen Option:

    public static class LocationConstants
    {
        public const string StateId = "ST";
        public const string CountryId = "CI";
    }

Die Verwendung von static in der Klassendeklaration signalisiert Ihre Absicht für den Zweck dieser Klasse.

Marc Gravell beschreibt einige der möglichen Probleme mit Konstanten in diese Antwort zum Stapelüberlauf . Nur Sie werden wissen, ob dies ein Problem in Ihrer Codebasis ist, aber wenn sich die Werte jemals ändern könnten , verwenden Sie public static readonly anstelle von const, sonst muss jeder Code, der sich auf die Konstanten bezieht, neu erstellt werden, wenn sich die Werte ändern.

35
jcorcoran