在c#的预定义值类型中只有decimal不是所谓的基本类型吗?到底什么是基本类型呢?基本类型和值类型、引用类型的差别在哪里呢?谢谢!

解决方案 »

  1.   

    :• 值类型 — 这些是内置的基本数据类型,例如 char、int、float 和用 struct 声明的用户定义类型。  
      
    • 引用类型 — 从基本类型构造而来的类和其他复杂数据类型。这种类型的变量并不包含类型的实例,而只是包含对实例的引用。  
    参考http://post.baidu.com/f?kz=107174194
      

  2.   

    基本类型是计算机或者虚拟机上能实实在在表示的数据类型,比如int 占2个字节。如果不是基本类型,比如struct,则在内存中不能确定是占多少字节。理解这个应该联系数据结构上的一些知识来理解。同时,Decimal类型在C#中是结构类型,所以不是基本类型,详细说明见SDK。
    值类型和引用类型不应该和数据类型相提并论,这两个概念是传参时使用的,跟数据类型没有必然关系。
      

  3.   

    decimal在C#中是基元类型,在CLR中不是
    decimal类型变量的运算不是直接生成IL指令,而是调用System.Decimal结构的方法,
    处理速度慢于CLR基元类型