想了一会儿,但是还是没有想得很通:
我们都知道,在C#中声明的一个类型,如 int,实际上是.Net结构System.Int32的一个实例.说,在语法上,可以把所有的基本数据类型看作是chi支持某种方法的类.
但是,我发现有这么一句话,就有点蒙了:
这里的"类型"仍然存储为基本类型.基本类型在概念上用.Net结构便是,所以肯定没有性能损失!
这的一时间想不出为什么,性能不损失和是结构类型,有什么关系哈?
有点半懂半不懂.和结构有关,最多不就说和"值类型"有关.

解决方案 »

  1.   

    这类疑问在msdn上有说明,你可以去msdn上看看
      

  2.   

    这很简单。一个int值,就是一个32bit整数,可以放在cpu的寄存器中,也可以在一条cpu机器指令中被处理。这些类型直接和硬件相关,所以快。
    到目前为止,还没有一个硬件实现的cpu可以直接处理一个对象的。
      

  3.   

    LZ我想再问个问题,在1楼你说的int为32位,所以可以直接放在cpu寄存器中,那对于long类型,是怎么处理?因为我见这么句话,基本类型在概念上用.net结构表示,所以肯定没有性能损失。貌似处理方式也也是一样的哦?
      

  4.   

    值类型初始化时被储存在线程的堆栈上,堆栈是被操作系统直接管理和操作,不受CLR垃圾处理器的影响。当实例方法结束时,其储存的数据自动释放,栈因为由操作系统直接管理和读取所以执行效率很高,但是储存的空间有限。
    引用类型被分配在托管堆上,托管堆是由CLR管理和操作,由GC垃圾处理器进行释放和回收,所以一旦被初始化,其被释放存在不定性。因此,值类型的操作效率要高于引用类型。而C#中struct类型的都是值类型,long也是值类型和int32处理方式一样。