string的问题

dreams_dreams 2009-12-04 09:58:00
using System;
class Program
{

static void Main(string[] args)
{
string a = "original value";
b(a);
Console.WriteLine(a);
Console.ReadKey();
}
private static void b(String c)
{
c = "changed";
}
}
为什么输出的值还是original value而不是changed
...全文
93 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
梅州扣肉 2009-12-04
  • 打赏
  • 举报
回复
在b方法中,只是把a的一个副本传给了b,在该方法中对a的修改不会直接影响到main中原始a的值,所以输出的还是original value而不是changed
tbinjiayou 2009-12-04
  • 打赏
  • 举报
回复
main在调用b方法时,是将a的一个副本传给了b方法。在该方法中对a的任何修改,都不会直接影响到mian中原始的a,而仅仅只是修改了副本的值。
vrhero 2009-12-04
  • 打赏
  • 举报
回复
老掉牙的问题...在.NET中,除非使用ref或out关键字,否则所有参数传递全都是“按值传递”...

这里string虽然是引用类型,传递的仍是a的一个引用副本,对此引用副本的任何更改都不会影响a自身...

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧