La respuesta literal es:
return (value == 1 ? Periods.VariablePeriods : Periods.FixedPeriods);
Nótese que la línea if, al igual que una sentencia if, sólo verifica si hay verdadera o falsa. Si (valor == 1) se evalúa como falsa, puede ser que no necesariamente significa que el valor == 2. Por lo tanto, sería más seguro así:
return (value == 1
? Periods.VariablePeriods
: (value == 2
? Periods.FixedPeriods
: Periods.Unknown));
Si agrega más valores de una línea si se convertirá en ilegible y una sería preferible interruptor:
switch (value)
{
case 1:
return Periods.VariablePeriods;
case 2:
return Periods.FixedPeriods;
}
lo bueno de las enumeraciones es que tienen un valor, por lo que puede utilizar los valores para el mapeo, como sugirió user854301. De esta forma, puedes evitar las ramas innecesarias, lo que hace que el código sea más legible y extensible.
@Ysterhak: Me alegro de que haya ayudado.Todavía me pregunto por qué prefieres la ramificación sobre el uso de un molde como lo sugiere el usuario854301 – chiccodoro