Пример кода:
public enum Foods
{
Burger,
Pizza,
Cake
}
private void button1_Click(object sender, EventArgs e)
{
Eat(0); // A
Eat((Foods)0); // B
//Eat(1); // C : won't compile : cannot convert from 'int' to 'Foods'
Eat((Foods)1); // D
}
private void Eat(Foods food)
{
MessageBox.Show("eating : " + food);
}
Код в строке C не будет компилироваться, но строка A компилируется в порядке. Есть ли что-то особенное в перечислении с 0 значением, которое получает специальное лечение в таких случаях?