Si un Enum commencer par un 0 ou un 1?

Imaginer je l'ai défini l'Enum ci-dessous:

public enum Status : byte
{
    Inactive = 1,
    Active = 2,
}

Quelle est la meilleure pratique à utiliser enum? Faut-il commencer avec 1 comme l'exemple ci-dessus, ou de démarrer avec 0 (sans les valeurs explicites) comme ceci:

public enum Status : byte
{
    Inactive,
    Active
}
  • Avez-vous vraiment besoin de nombre explicitement à tous?
  • Les énumérations ont été créés juste pour que ce genre de choses ne serait pas important.
  • pourquoi ne pas utiliser un booléen?
  • arrgh pas! Mieux utiliser un enum lorsque vous pense est un booléen va faire que d'utiliser un booléen quand vous pensez à un enum.
  • en raison de la FileNotFound de valeur, bien sûr
  • stackoverflow.com/questions/1240739/...
  • Je suis d'accord que la question est liée à ce problème (même si c'est spécifiquement sur les paramètres de la fonction), mais je pense qu'il y a également de solides arguments contre l'utilisation de booléen pour les membres / les variables dans de nombreux cas. Il y a de les choses qui véritablement ne disposez que de 2 membres et n'aura jamais un 3ème, mais une fois que vous obtenez à partir du "monde réel" dans le logiciel de domaine, ils sont en fait assez rare, sauf pour calculé les conditions (pour qui les booléens sont bien sûr exactement).
  • Type de sécurité est une autre considération.
  • xkcd.com/163 s'applique à l'enum de même mieux que de les indices de tableau.
  • Que XKCD s'applique à cette façon 🙂 C'est assez absurde...
  • vous ne devez jamais utiliser un boolean pour quelque chose qui n'est pas en soi un "oui" ou " non " à la question, même si elle n'a que deux valeurs possibles. Côté de considérer qu'il peut ajouter un autre Statut de la semaine prochaine appelé "l'Attente", etc., il vient de rendre le code plus lisible et compréhensible pour les humains. -- (Juste parce que vous pouvez activer quelque chose dans un "oui" ou " non " à la question ne signifie pas que vous devriez. - Si quelqu'un vous demande votre statut, vous ne pouvez pas dire "oui".)
  • Oui je recommanderais numérotation des enums explicitement. La raison en est que toute réorganisation de l'énumération des éléments de changer leurs valeur. Maintenant, si vous stocker ces valeurs dans une base de données, les données ne seront pas synchronisées avec le code. Si ils sont explicites, le re-commande de ne pas changer leurs valeurs.
  • pas vrai. Les valeurs sont importantes, ils ont été créés de sorte que vous pouvez avoir des collections de valeurs significatives, sans avoir à disputer quelques consts ensemble et de créer l'association vous-même. Pas de départ à 0 est un bon moyen d'établir qu'ils doivent être explicitement définis et de prévenir les erreurs où une valeur non semble être intentionnellement.

InformationsquelleAutor Acaz Souza | 2011-08-31