Как указано кантон7 в комментарии ,
Если вы думаете об этом, это имеет смысл.«Задает поворот на 180 градусов по часовой стрелке с последующим горизонтальным и вертикальным переворотом».Сделайте это преобразование в своей голове, и вы вернетесь туда, откуда начали.
По этой причине RotateFlipType
значения RotateNoneFlipNone
и Rotate180FlipXY
оба имеют одинаковое значение (из 0
) ( API-источник ).
Это становится очевидным в справочном источнике (без учета комментариев XML):
public enum RotateFlipType
{
RotateNoneFlipNone = 0,
Rotate90FlipNone = 1,
Rotate180FlipNone = 2,
Rotate270FlipNone = 3,
RotateNoneFlipX = 4,
Rotate90FlipX = 5,
Rotate180FlipX = 6,
Rotate270FlipX = 7,
RotateNoneFlipY = Rotate180FlipX,
Rotate90FlipY = Rotate270FlipX,
Rotate180FlipY = RotateNoneFlipX,
Rotate270FlipY = Rotate90FlipX,
RotateNoneFlipXY = Rotate180FlipNone,
Rotate90FlipXY = Rotate270FlipNone,
Rotate180FlipXY = RotateNoneFlipNone,
Rotate270FlipXY = Rotate90FlipNone
}
Наличие дубликатов не повредит, поэтому я полагаю, что пользователям перечисления легче иметь несколько определений для одной и той же вещи.
На самом деле нет причин, по которым у вас не может быть повторяющихся числовых значений.для значений перечисления - фактически спецификация языка C # гласит: :
Несколько членов перечисления могут иметь одно и то же связанное значение.В примере
enum Color
{
Red,
Green,
Blue,
Max = Blue
}
показано перечисление, в котором два члена перечисления - Blue
и Max
- имеют одинаковое значение.