Suggerisci una procedura ottimale per creare una classe Constants

15

C'è un dibattito tra i membri del mio team sulla dichiarazione di una classe di costanti. Stiamo spostando le variabili costanti in una classe separata come sotto.

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

Alcuni membri del mio team hanno suggerito di dichiarare la classe come sigillata per evitare l'opzione di sovrascrittura, e alcuni suggeriscono di contrassegnarla come statica per evitare la creazione di istanze della classe Constant.
Tuttavia, preferisco averlo come Sealed con un costruttore statico, dal momento che ci aiuterà a inizializzare le variabili di sola lettura in caso di necessità future. Per favore, dacci un consiglio su questo.

    
posta user46506 26.02.2014 - 07:19
fonte

1 risposta

24

Non è completamente chiaro quale sia la tua domanda, ma se i valori sono veramente costanti, non vedo un problema con l'opzione semplice di:

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

L'utilizzo di static nella dichiarazione della classe segnala la tua intenzione per lo scopo di questa classe.

Marc Gravell descrive alcuni dei potenziali problemi con le costanti nella risposta Overflow dello stack . Solo tu saprai se questi sono un problema nella tua base di codice, ma se i valori potrebbero mai cambiare, usa public static readonly invece di const , altrimenti qualsiasi codice che fa riferimento alle costanti dovrà essere ricostruito se i valori cambiano.

    
risposta data 04.03.2014 - 22:27
fonte

Leggi altre domande sui tag