System.TypeCode枚举中的异常字符串类型代码

Iva*_*tau 3 c# string

在.NET System.TypeCode枚举中,值如下:

public enum TypeCode {
  ...
  Double=14,
  Decimal=15,
  DateTime=16,
  String=18,
  }
Run Code Online (Sandbox Code Playgroud)

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

Ser*_*kiy 8

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

public enum TypeCode 
{
   Double = 42,
   Decimal, // 43
   DateTime = 0,
   String = 18  
}
Run Code Online (Sandbox Code Playgroud)

UPDATE

为什么System.TypeCode价值17缺失 - 因为曾经是TimeSpan类型,但它已被删除.

  • 这就是它的样子!TimeSpan删除..现在很清楚. (2认同)