Я только что обнаружил тонкую ошибку, в которой у меня было перечисление с двумя именами, которые неинтересно использовали одно и то же числовое значение (в данном случае красный = 10 и малиновый = 10). Я немного удивлен, что это не синтаксическая ошибка.
public enum Colour
{
Red=10,
Blue=11,
Green=12,
Crimson=10
}
// Debug.Write(Colour.Red==Colour.Crimson) outputs True
Есть ли какая-нибудь реальная причина, почему это поведение может быть полезным или, по-моему, должно быть синтаксической ошибкой?