c# 的ArrayList add的数据都一样?怎么回事

[复制链接]
查看11 | 回复1 | 2011-6-19 10:36:52 | 显示全部楼层 |阅读模式
ArrayList zhlist = new ArrayList(12);

string[] zhanghao = new string[2];

.

.

.

while (reader.Read())

{


zhanghao[0] = reader[1].ToString();

zhanghao[1] = reader[2].ToString();

label.Text+=reader[1].ToString();

zhlist.Add(zhanghao);

}
这样子添加后数组里的数据都是一样的,全部显示最后添加的那一个!可以确定添加的是不同数据。
要怎么改,高手帮忙看一下,谢谢!

回复

使用道具 举报

千问 | 2011-6-19 10:36:52 | 显示全部楼层
可看出你面向对象的基础知识不扎实,还没有引用类型与值类型的概念认知。你定义了一个string数组,它是引用类型,所有对它的引用都是调用堆上实际数据的地址,所以你在while里操作的永远都是同一个对象,自然数据都是一样的。把代码改成下面再试试:
while (reader.Read())
{
string[] zhanghao = new string[2];
zhanghao[0] = reader[1].ToString();
z...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行