c# 数据类型问题-自我矛盾问题!

来源:百度知道 编辑:UC知道 时间:2024/06/04 17:33:45
基本数据类型 申明的变量是值类型,class类或数组下的变量是引用类型,对吗?比如int a=5;a是值类型,Person p1,p1是引用类型。但是我发现int可以调用方法,举例int.Parse(texBox1.text);
即说明了int也是一个类,那么int类下的变量应该是引用类型,这与前面说的int下申明的变量为值类型不符合,我到底错在哪里了?

值类型:数值类型
子符
布尔值
枚举
结构
在C#中,所有的值类型都隐式继承System.ValueType,而System.ValueType又继承System.Object。
从底层来讲值类型都是由相应的类定义的,但是对于这些值类型的类,其中的大部分方法覆盖了OBJECT类。所以它们与引用类型相比好多特性都是不一样的。

“class类或数组下的变量是引用类型”,这个前提不是完全正确的。
C#里所有数据类型的都是类,包括Int或int,是对原int的封装。
所以,知道C#里基本数据类型的变量是值类型,这一点就可以了。

Int确切的说不是一个类而是一个结构体.所以是值类型的.而int.Parse,是这个结构体下的一个静态方法..

int的原型就是system.data.Int32