enum Fruit
{
Banana,
Orange,
Strawberry
...
...
// etc, very long enum
}
PeelFruit(Fruit.Orange);
PeelFruit(Fruit.Banana);
PeelFruit(Fruit.Strawberry); // huh? can't peel strawberries!
Извините за неудачный пример, но, надеюсь, вы поняли идею.Есть ли способ ограничить значения перечисления, которые PeelFruit
примет?
Я бы мог проверить их в методе с помощью переключателя или чего-то еще, но было бы здорово, если бы был способ сделать этоа) немного компактнее, и б) вызовет ошибку времени компиляции, а не ошибку времени выполнения.
[Fruit = Orange,Bannana]
void PeelFruit(Fruit fruit) { ... }