3

在 .NETSystem.TypeCode枚举中,值如下:

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

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

4

1 回答 1

8

您可以按任何顺序将任何数字(在您的情况下为整数)分配给枚举元素。如果 value 没有明确分配,那么默认情况下第一个 value 将是0. 所有其他未明确分配的值都会将前一个元素的值加一:

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

更新

为什么缺少System.TypeCode17- 因为曾经有TimeSpan类型,但它被删除了

于 2012-12-09T08:48:54.533 回答