一个关于List的基本问题
黑娃 2011-12-09 05:22:58 请看
string ss = new string('2', 4);
ss = "hh";
List<string> ls = new List<string>();
ls.Add(ss);
MessageBox.Show(ls[0]);
ss = "hh2";
MessageBox.Show(ls[0]);
两次show的结果都是hh,证明了容器list里面的实体和外面的ss不是同一个引用
若把string改成控件Butten
Button btn = new Button();
btn.Text = "haha";
List<Button> lsbtn = new List<Button>();
lsbtn.Add(btn);
MessageBox.Show(lsbtn[0].Text.ToString());
btn.Text = "haha2";
MessageBox.Show(lsbtn[0].Text.ToString());
两次show的结果不一样,证明了list里面的实体和外面的btn是一个引用
如果我要装入自己定义的类,情况也同Butten
请问:
List容器什么情况下装入外面对象的引用,什么时候装入外面对象的副本
我一直以为c#里面凡是要new才能用的对象,都像是C++里面的智能指针,但string却不是这样,能仔细说明下吗?