首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

问一个简单的有关问题

2012-01-05 
问一个简单的问题!TextBoxtb1是页面上的一个控件.在后台中定义了一个TextBoxtb2tb1,当给tb2.Text付值时,

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

热点排行