gpt4 book ai didi

c# - 为什么默认枚举值是 0 而不是最小值?

转载 作者:可可西里 更新时间:2023-11-01 03:05:50 26 4
gpt4 key购买 nike

在 C# 中将“0”作为枚举的默认值有什么意义?如果我声明以不同数字开头的枚举:

enum Color
{
Blue = 1,
Green,
Red,
}

然后 var color = default(Color) - 将返回“0”。我希望看到最小值。如果枚举的每个成员都对应于某个特定数字并且“0”不是有效值,则此行为可能会导致问题。

最佳答案

所有值类型(包括枚举)的默认值都是按位 0。因此这意味着 0 始终是枚举的可能值,即使它没有明确定义也是如此。

这是规范:Default values table

编辑:有关枚举类型的更多详细信息,请查看 MSDN - enum

enum 是一种特殊的类型,它从其他值类型派生而来(通常不可能),但表现为其支持类型的值类型。枚举只能使用一些整数值作为支持类型。

注意:正如@a​​rchil 指出的那样,枚举值可以包含任何支持类型的值,而不管枚举本身中枚举的常量列表。对于标有“FlagsAttribute”的枚举,此行为通常是预期的,但对于普通枚举,它可能不直观。

关于c# - 为什么默认枚举值是 0 而不是最小值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10742392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com