在C#中一切数据类型都是从object类型继承而来的,而object 是引用类型的。那为什么从object继承而来的这些数据类型为什么会有值类型和引用类型的?比如int就是引用类型的,string是引用类型的。在百度里搜了一下,发现网上也没有很好的答案,不过,搜到过CSDN上以前有人问过,但答案也没有很令人满意的。有人说,是因为 值类型继承不仅继承自object,还继承了一些接口所以变成值类型。但经过我查MSDN,并没有一个这样的接口,此答案并不能让我信服。但经过仔细分析后发现,所有的值类型的数据类型都是一个结构,而不是类,所有引用类型的数据类型都是类。这给我一个启发,数据类型的值类型和引用类型的分别有没有可能是结构和类的区别造成的呢?大家都知道结构就是值类型的它被存在栈中,而类是引用类型的所以它就被存储在堆中。是不是由于类和结构在堆栈中存储位置不同造成了这种虽然所有类型都是继承自object但有的类型是值类型有的引用类型的现象呢?
希望大家各抒己见~