C# 类引用类型的问题
最近学习C#里面的类和结构,讲到结构是值类型,类是引用类型,然后给出代码事例。上面的代码值都是20,我理解的不是很好,请懂的人帮助详细讲解下,先谢谢了!...
最近学习C#里面的类和结构,讲到结构是值类型,类是引用类型,然后给出代码事例。上面的代码值都是20, 我理解的不是很好,请懂的人帮助详细讲解下,先谢谢了!
展开
展开全部
所以的值类型与引用类型上,我这样给你说一下,看你是否能明白。
值类型的内存单元里是值,而引用类型单元里边是地址,地址指向了值。
比如int是值类型,int s =5;
s这个内存单元中就是5,不是地址指针。
而类则是一种引用类型!类中的并不是实际的值,而是一些指针指向了真正的值。
所以值类型就是反映的直接的数据。如:
struct M(int,int)
这个结构就是直接的值类型,它在内存中的表现是,除了结果体说明,就占两个int空间,用第一个空间里的数做第一个数值,第二个空间的数就是第一个数值。这就是结构体,也就是值类型。
值类型与引用类型说是类型。
传值引用,与址引用说的是引用方式。我给你的参数是一个值,你就按这个类计算去。如果我给的是地址,你计算时直接用的是地址。
在C#中没有传址,而是直接使用的ref参数与out参数将对象直接传入的。
传址引用与传值引用是两种不同的引用方式,与类型没有半毛钱的关系。
static是静态,实际上是开辟数据公用区,也就是说,如果你见到static,那么所有的都会引用同一地址的数据。而这个数据就是所谓的数据公共区。它和引用方式也没有半毛钱的关系。
值类型的内存单元里是值,而引用类型单元里边是地址,地址指向了值。
比如int是值类型,int s =5;
s这个内存单元中就是5,不是地址指针。
而类则是一种引用类型!类中的并不是实际的值,而是一些指针指向了真正的值。
所以值类型就是反映的直接的数据。如:
struct M(int,int)
这个结构就是直接的值类型,它在内存中的表现是,除了结果体说明,就占两个int空间,用第一个空间里的数做第一个数值,第二个空间的数就是第一个数值。这就是结构体,也就是值类型。
值类型与引用类型说是类型。
传值引用,与址引用说的是引用方式。我给你的参数是一个值,你就按这个类计算去。如果我给的是地址,你计算时直接用的是地址。
在C#中没有传址,而是直接使用的ref参数与out参数将对象直接传入的。
传址引用与传值引用是两种不同的引用方式,与类型没有半毛钱的关系。
static是静态,实际上是开辟数据公用区,也就是说,如果你见到static,那么所有的都会引用同一地址的数据。而这个数据就是所谓的数据公共区。它和引用方式也没有半毛钱的关系。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询