How does the algorithm work of determining the Enum value in C#?
Main code:
void Main()
{
Numbers number;
number = Numbers.Four;
Console.WriteLine((int) number);
Console.WriteLine(number);
Console.WriteLine(Numbers.Four);
}
Example 1
enum Numbers {
One,
Two,
Three,
Four = 1,
Five,
Six
}
Set the value to 1 for Four
As a result of execution it turns out:
1 Four Four
If you decompile, you can see the following:
private enum Numbers
{
One = 0,
Two = 1,
Three = 2,
Four = 1,
Five = 2,
Six = 3
}
Example 2
enum Numbers {
One,
Two,
Three,
Four = 2,
Five,
Six
}
Set the value to 2 for Four
As a result of execution it turns out:
2 Three Three
If you decompile, you can see the following:
private enum Numbers
{
One = 0,
Two = 1,
Three = 2,
Four = 2,
Five = 3,
Six = 4
}
Why is the last matching value selected in the first example, and the first matching value selected in the second example?