C# では、負の値に対応するメンバーを含む を定義し、enum
その値を反復処理するとenum
、負の値は最初ではなく最後になります。なぜそれが起こるのですか?他の言語 (C、C++、Ada など) では、 an を反復するenum
と、それを定義した順序が得られます。
MSDN には、この動作の良い例があります。
using System;
enum SignMagnitude { Negative = -1, Zero = 0, Positive = 1 };
public class Example
{
public static void Main()
{
foreach (var value in Enum.GetValues(typeof(SignMagnitude)))
{
Console.WriteLine("{0,3} 0x{0:X8} {1}",
(int) value, ((SignMagnitude) value));
}
}
}
// The example displays the following output:
// 0 0x00000000 Zero
// 1 0x00000001 Positive
// -1 0xFFFFFFFF Negative