| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1080 人关注过本帖
标题:麻烦大家帮我解释一下这个程序
只看楼主 加入收藏
tanghuawei
Rank: 4
来 自:美丽的湖南
等 级:业余侠客
威 望:3
帖 子:531
专家分:220
注 册:2006-3-16
结帖率:100%
收藏
 问题点数:0 回复次数:7 
麻烦大家帮我解释一下这个程序
private void button1_Click(object sender, EventArgs e)
        {
            StringBuilder a = new StringBuilder("A");
            StringBuilder b = new StringBuilder("B");
            operate(a, b);
            MessageBox.Show(a + "," + b);
        }

        private void operate(StringBuilder x, StringBuilder y)
        {
            x.Append(y);
            y = x;
        }
为什么出现的结果是:AB,B
搜索更多相关主题的帖子: 麻烦 解释 
2008-07-04 11:20
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
Append 是向 x 中追加.......

飘过~~
2008-07-04 11:39
tanghuawei
Rank: 4
来 自:美丽的湖南
等 级:业余侠客
威 望:3
帖 子:531
专家分:220
注 册:2006-3-16
收藏
得分:0 
回版主,这个我明白,但是下面的那个y=x;该怎么解释啊?y为什么不也等于AB呢?

汽车尾气检测网络系统QQ:357766186__MSN:MSNTHW19850316@
2008-07-04 11:41
lackyking
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:186
专家分:0
注 册:2008-7-1
收藏
得分:0 
修改字符串而不创建新的对象,使用 System.Text.StringBuilder 类。

例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。
2008-07-04 11:53
tanghuawei
Rank: 4
来 自:美丽的湖南
等 级:业余侠客
威 望:3
帖 子:531
专家分:220
注 册:2006-3-16
收藏
得分:0 
那y=x;的意思就是,x赋给y,但是y还是引用它原来的那个老的对象,并未创建新的对象??

汽车尾气检测网络系统QQ:357766186__MSN:MSNTHW19850316@
2008-07-04 11:58
lackyking
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:186
专家分:0
注 册:2008-7-1
收藏
得分:0 
void   operate(StringBuffer   x,   StringBuffer   y)   {   
   
      //   
  }     
  当你调用operate(a,b)这个方法时;在这个方法体的内部生成两个局部reference   x和y,   
  而且   x存储的是a的值,y存储的是b的值,这就是所谓的引用(reference)的传值,在方法体内的调用x,y的方法会对对象状态造成影响(alias效应),但是对x,y的存贮的值操作不会影响   
  方法体外的a,b!   所以可知   x.append(y)会对x指向的对象造成影响,但是y   =   x   ;并不会使b指向x指向的对象!!

--------可以参考Java关于StringBuilder的应用
JAVA方法调用是通过“传值”,对于原型来说,是把值copy过去,与调用者就不相干了。但是对于引用来说,只是意味着把内存地址传过去,里面存放的“内容”跟调用者是同一个!也即说修改内容会影响调用者x.append(y);//会使a变成AB,但是   y   =   x   ;//只是使“这个”方法内的临时变量y指向x,而不会影响此方法外的调用者的引用,所以b还是含B。


[[it] 本帖最后由 lackyking 于 2008-7-4 12:29 编辑 [/it]]
2008-07-04 12:28
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
lackyking 说得很详细啊.呵

飘过~~
2008-07-04 13:12
tanghuawei
Rank: 4
来 自:美丽的湖南
等 级:业余侠客
威 望:3
帖 子:531
专家分:220
注 册:2006-3-16
收藏
得分:0 
非常感谢各位,懂了!

汽车尾气检测网络系统QQ:357766186__MSN:MSNTHW19850316@
2008-07-04 18:03
快速回复:麻烦大家帮我解释一下这个程序
数据加载中...
 
   



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

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