2012-12-09 46 views
3

在.NET System.TypeCode枚举,这些值如下:异常字符串类型代码

public enum TypeCode { 
    ... 
    Double=14, 
    Decimal=15, 
    DateTime=16, 
    String=18, 
    } 

字符串等于18 ..为什么不17?逻辑在哪里?

+3

您为其指定了该值。这是逻辑。 – Oded

+0

如果您问_why_枚举是以这种方式创建的,则需要询问创建枚举的人员。 – Oded

+0

可能的兼容性问题 – Jacob

回答

8

您可以按任意顺序指定任何数字(在您的情况下为整数)来枚举元素。如果未明确指定值,则默认情况下,第一个值将为0。这不是exmplicitely分配将递增一前一元素的值所有其他值:

public enum TypeCode 
{ 
    Double = 42, 
    Decimal, // 43 
    DateTime = 0, 
    String = 18 
} 

UPDATE

为什么System.TypeCode具有价值17缺失 - 因为那里曾经是TimeSpan类型,但it was removed

+2

所以就是这样! TimeSpan删除..现在很明显。 –