为什么DateTime没有内置类型?

时间:2016-11-17 14:16:11

标签: c# datetime

大多数常见数据类型都有内置类型:Int32intBooleanboolStringstring等。为什么DateTime没有内置类型?

首先我认为这是因为DateTime具有属性和公共功能,但int也是如此。任何人都可以对此有所了解吗?具有内置等效类型的类型的标准是什么?

2 个答案:

答案 0 :(得分:8)

CLR仅定义基本构建块:定义所有其他构建块所需的最小数据类型。这些是别名的类型。

由于DateTime只是一个包含在结构中的long和整数的集合,因此无需在CLR中为它创建新的数据类型。您可以使用CLR中已定义的数据类型构建它。不需要别名它。

答案 1 :(得分:1)

这些只是语言中的别名。 DateTime没有别名。就是这样。

更新:
根据C#语言规范:

  

C#提供了一组称为简单类型的预定义结构类型。简单类型通过保留字标识,但这些保留字只是System命名空间中预定义结构类型的别名,如下表所示。

    Reserved word   Aliased type
    ----------------------------
    sbyte           System.SByte
    byte            System.Byte
    short           System.Int16
    ushort          System.UInt16
    int             System.Int32
    uint            System.UInt32
    long            System.Int64
    ulong           System.UInt64
    char            System.Char
    float           System.Single
    double          System.Double
    bool            System.Boolean
    decimal         System.Decimal

C#语言规范可以在这里找到:
C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC#\ Specifications \ 1033 \ CSharp Language Specification.docx