| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 804 人关注过本帖
标题:[分享]引用类型和值类型的精典比较
只看楼主 加入收藏
goodgoodstudy
Rank: 2
等 级:新手上路
威 望:3
帖 子:111
专家分:0
注 册:2005-4-6
收藏
 问题点数:0 回复次数:5 
[分享]引用类型和值类型的精典比较

using System;

namespace RV { class My { static void Main() { RefTypeRectangle rt1 = new RefTypeRectangle ();

rt1.Width = 10; rt1.Height = 15;

RefTypeRectangle rt2 = rt1;

Console.WriteLine ("{0},{1}",rt1.Width ,rt1.Height ); Console.WriteLine ("{0},{1}",rt2.Width ,rt2.Height );

rt1.Width = 20; rt1.Height = 30;

Console.WriteLine ("{0},{1}",rt1.Width ,rt1.Height ); Console.WriteLine ("{0},{1}","更改以后的"+rt2.Width ,rt2.Height );

Console.WriteLine ();

ValTypeRectangle vt1 = new ValTypeRectangle (); vt1.Width = 10; vt1.Height = 15; ValTypeRectangle vt2 = vt1; Console.WriteLine ("{0},{1}",vt1.Width ,vt1.Height ); Console.WriteLine ("{0},{1}",vt2.Width ,vt2.Height );

vt1.Width = 20; vt1.Height = 30;

Console.WriteLine ("{0},{1}",vt1.Width ,vt1.Height ); Console.WriteLine ("{0},{1}","更改以后的"+vt2.Width ,vt2.Height );

System.Threading .Thread .Sleep (100000); } }

class RefTypeRectangle { public int Width; public int Height; }

struct ValTypeRectangle { public int Width; public int Height; } }

搜索更多相关主题的帖子: 精典 类型 分享 
2005-09-22 12:58
smiles
Rank: 1
等 级:新手上路
帖 子:123
专家分:0
注 册:2005-8-8
收藏
得分:0 
斑竹加油!~!~
顶一下!~

2005-09-23 16:56
螺丝山家具铺
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-9-26
收藏
得分:0 
请斑竹指教,我看了好久也看不出,那2个有什么区别~~为什么结果会不一样~~请指教
2005-09-27 00:43
zhangyingcai
Rank: 1
等 级:新手上路
帖 子:55
专家分:0
注 册:2005-9-3
收藏
得分:0 
因为类的对象属于引用类型,结构体的对象属于值类型。引用类型变量赋值传的是引用,结果是两个变量指向同一个对象,所以其中一个对象的某个属性改变之后,另外一个对象的属性自然的相应的有了变化(因为它们指向的是同一个对象);值类型变量赋值传的是值,结果是复制相同的值给相应的对象,改变其中一个对象的属性值,不影响另外一个对象的属性值。大概就是这个意思吧,有不恰当的地方,还请高手指点。

2005-09-27 13:02
螺丝山家具铺
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-9-26
收藏
得分:0 
多谢指点~~我知道我错在哪了~~原来1个是类的定义,1个是结构体的定义,我原来没注意以为是2个类,
2005-09-28 11:39
goodgoodstudy
Rank: 2
等 级:新手上路
威 望:3
帖 子:111
专家分:0
注 册:2005-4-6
收藏
得分:0 
以下是引用zhangyingcai在2005-9-27 13:02:54的发言: 因为类的对象属于引用类型,结构体的对象属于值类型。引用类型变量赋值传的是引用,结果是两个变量指向同一个对象,所以其中一个对象的某个属性改变之后,另外一个对象的属性自然的相应的有了变化(因为它们指向的是同一个对象);值类型变量赋值传的是值,结果是复制相同的值给相应的对象,改变其中一个对象的属性值,不影响另外一个对象的属性值。大概就是这个意思吧,有不恰当的地方,还请高手指点。
非常正确,我写这段代码的目的就是要说明这一点的.

2005-09-29 15:05
快速回复:[分享]引用类型和值类型的精典比较
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016251 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved