C#中类、结构体、值类型以及引用类型之间是什么关系?
1个回答
展开全部
在C#中,每种数据类型都对应.NET类库中的类和结构体。因此,所有的变量都是类或结构体的实例。
结构体是值类型,这与Java的基础类型概念相似,都用于存储数据的值。值类型变量之间赋值的时候,被赋值的变量会在内存中拷贝一份赋值变量的原始数据。例如:
int
v1
=
5;
int
v2
=
v1;
示例中整型变量v2被v1赋值了,但如果改变v2的值,也不会影响v1中存储的数据。因为整型是结构体,赋值时会产生一个副本,不会影响v1中的原始数据。
类是引用类型,类对象用于存储对实际数据的引用。
例如:
Object
o1
=
new
Object();
Object
o2
=
o1;
注意Object是一个类,不是结构体。引用类型不会复制原始数据。示例中o2改变,o1也会跟着改变,因为这两个变量指向或引用了内存中的同一个对象。
有关值类型和引用类型的区分,可以参考秒秒学网站上的C#变量这一课程。
结构体是值类型,这与Java的基础类型概念相似,都用于存储数据的值。值类型变量之间赋值的时候,被赋值的变量会在内存中拷贝一份赋值变量的原始数据。例如:
int
v1
=
5;
int
v2
=
v1;
示例中整型变量v2被v1赋值了,但如果改变v2的值,也不会影响v1中存储的数据。因为整型是结构体,赋值时会产生一个副本,不会影响v1中的原始数据。
类是引用类型,类对象用于存储对实际数据的引用。
例如:
Object
o1
=
new
Object();
Object
o2
=
o1;
注意Object是一个类,不是结构体。引用类型不会复制原始数据。示例中o2改变,o1也会跟着改变,因为这两个变量指向或引用了内存中的同一个对象。
有关值类型和引用类型的区分,可以参考秒秒学网站上的C#变量这一课程。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |