¿Qué operaciones aritméticas se admiten en C# enumeraciones? Sorprendentemente, no pude encontrarlo ni a través de google, ni de wikipedia y stackoverflow.operaciones aritméticas en valores enum
¿Puedo agregar dos valores de enumeración sin ningún molde? Añadir constante arbitraria a un valor o restarlo? ¿O garantiza enum que un valor de ese tipo es siempre uno de los valores enum definidos o su máscara de bits?
class ... {...
enum WeekDays : byte { Sun = 1, Mon = 2, Tue = 3, /* and so on*/ Sat = 7 };
public static bool IsWeekend (WeekDays _d) {
/// Can I be sure here that _d has value from 1..7? May it be any of 0..255?
}
Sé acerca de las operaciones a nivel de bit, Parece razonable apoyarlas para representar las banderas.
Wikipedia nos dice que mi muestra también permite _d - 1
o WeekDays.Tue - WeekDays.Mon
, que puede ser útil para enumeraciones secuenciales estrictamente ordenadas, pero no puedo encontrar ninguna referencia estándar, ¿podría, por favor, señalarme?
¿No puedes simplemente probarlo y ver qué pasa? – Matt
Mi punto es conocer el comportamiento estándar, no cierto compilador. Primero, quiero estar seguro, mi código será correcto para cualquier compilador que soporte el estándar C# (MS, Mono,). En segundo lugar, quiero leer algo útil del artículo estándar correspondiente para estar mejor preparado para mi prueba de C#. –
gluk47