enum Days
{
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday = 2,
Saturday
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Days.Sunday);
Console.WriteLine(Days.Monday);
Console.WriteLine(Days.Tuesday);
Console.WriteLine(Days.Wednesday);
Console.WriteLine(Days.Thursday);
Console.WriteLine(Days.Friday);
Console.WriteLine(Days.Saturday);
}
}
我不明白为什么,如果给 Friday 元素分配了一个没有余数 (0, 2, 4) 的数字,那么具有相同数字的元素将被替换为 Friday,如果有余数 (1, 3),那么星期五本身被具有相同数字的元素替换。
例如:
Friday = 2 Console.WriteLine(Days.Tuesday) 是星期五;
Friday = 1 Console.WriteLine(Days.Friday) 是星期一;
它是枚举的一个特性吗?
实际上,您正在为枚举的两个元素分配相同的值。在这种情况下,打印这些元素时会出现未定义的行为:
一般来说,在这种情况下应该发出警告。不要这样做。如果您真的需要它,您最多可以做的是显式分配先前定义的元素:
但是无论如何,如果元素相等,那么它们是相同的,这对您将打印哪个有什么不同?