我用SHOW BINLOG EVENTS IN '<BINARY_LOG_FILE>' FROM <POSITION> LIMIT 100;
实现了一个方法,在比较值时出现了奇怪的行为。
System.Drawing.RotateFlipType
这怎么可能是真的?
答案 0 :(得分:4)
考虑一下,这是有道理的。 “指定顺时针旋转180度,然后进行水平和垂直翻转。”进行这种转换,然后回到起点。
因此,RotateFlipType
值RotateNoneFlipNone
和Rotate180FlipXY
都具有(0
)(API source)相同的值。
这在reference source中很明显(省略了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#语言规范says:
多个枚举成员可以共享相同的关联值。例子
enum Color { Red, Green, Blue, Max = Blue }
显示一个枚举,其中两个枚举成员
Blue
和Max
-具有相同的关联值。
答案 1 :(得分:3)
RotateNoneFlipNone
和RotateNoneFlipXY
都具有值0
。
//
// Summary:
// Specifies no clockwise rotation and no flipping.
RotateNoneFlipNone = 0,
//
// Summary:
// Specifies a 180-degree clockwise rotation followed by a horizontal and vertical
// flip.
Rotate180FlipXY = 0,
实际上它们更多,这是完全合理的。就像顺时针旋转270或逆时针旋转90一样。
答案 2 :(得分:0)