he definido un C# enumeración como¿Cómo puedo usar el valor de cadena de un valor enum de C# en una declaración de caso?
public enum ORDER
{
...
unknown,
partial01,
partial12,
partial23,
}
y puede utilizar su valor como una cadena como en:
string ss = ORDER.partial01.ToString();
Sin embargo cuando trato de usarlo en un comunicado caso de que falla al compilar:
string value = ...
switch (value)
{
case null:
break;
case "s":
// OK
break;
case ORDER.partial01.ToString():
// compiler throws "a constant value is expected"
break;
...
Pensé que los enum eran constantes. ¿Cómo puedo evitar esto?
(I no puede analizar el valor en un enum como algunos de los valores están fuera del rango)
que no va a manejar la comparación nula, pero que caso extremo podría ser manejado fuera de la declaración de caso. –
valor de cadena = nulo; // "partial01"; ¿ORDEN? orden = valor == nulo? null: (¿ORDER?) Enum.Parse (typeof (ORDER), value, true); –