读书人

问一个简单的有关问题

发布时间: 2012-01-05 22:36:54 作者: rapoo

问一个简单的问题!
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的内存地址。
[解决办法]
引用类型。

读书人网 >asp.net

热点推荐