当前位置: 代码迷 >> ASP.NET >> 问一个简单的有关问题
  详细解决方案

问一个简单的有关问题

热度:9416   发布时间:2013-02-25 00:00:00.0
问一个简单的问题!
TextBox   tb1   是页面上的一个控件.

在后台中定义了一个TextBox   tb2   =   tb1,当给tb2.Text付值时,为什么tb1也跟着变??


------解决方案--------------------------------------------------------
改为
TextBox tb2 = new TextBox();
就不会变了
------解决方案--------------------------------------------------------
tb1和tb2本就是同一个textbox了啊。
------解决方案--------------------------------------------------------
因为你那样做就把tb1和tb2弄成一个了。你自己吧tb2赋值给了tb1了不是?
------解决方案--------------------------------------------------------
那如果String str1 = "dddddd ";
再定义一个String str2 = str1;
str2 = "大厦大厦 ",
str1 的值会不会变?????

string 是后台两个不同的变量,而你的TextBox那样做的话就让两个TextBox用了同一个内存地址了,因为基类不同性质也就不同。

------解决方案--------------------------------------------------------
那如果String str1 = "dddddd ";
再定义一个String str2 = str1;
str2 = "大厦大厦 ",
str1 的值会不会变?????

同样的要照你这种应该写为
TextBox Txb1 = new TextBox();
Txb1.Text = "dddddd ";
TextBox Txb2 = new TextBox();
Txb2.Text = Txb1.Text;
Txb2.Text = "大厦大厦 ";
值也不会跟着变吧?原因就是string 定义的时候是不用实例化的,而你弄得TextBox并没有实例化所以自然就引用了TextBox1的内存地址。
------解决方案--------------------------------------------------------
引用类型。
  相关解决方案