Mi equipo ha comenzado recientemente a usar el documento Lance Hunt's C# Coding Standards como punto de partida para consolidar nuestros estándares de codificación.Estándares de codificación C# de Lance Hunt - confusión enum
Hay un elemento que simplemente no entiendo el punto, ¿alguien aquí puede arrojar algo de luz sobre él?
El artículo es número 77:
validar siempre una enumeración valor de la variable o parámetro antes consumirlo. Pueden contener cualquier valor que admita el tipo de Enum subyacente (valor predeterminado int).
Ejemplo:
public void Test(BookCategory cat) { if (Enum.IsDefined(typeof(BookCategory), cat)) {…} }
Estoy de acuerdo en que siempre debes tener un valor predeterminado: lanza una nueva ArgumentOutOfRangeException. También lo cubre para el escenario donde se agrega un nuevo valor a la enumeración. –
Podría decirse que NotSupportedException podría ser más apropiado, pero diablos, ¡siempre y cuando arroje! –
de acuerdo! Lanzar una nueva OldShoeException() es mejor que dejar que la lógica se caiga y un error aparezca en otro lado como consecuencia. –