首页 新闻 会员 周边 捐助

对于泛型应用有点疑问,请大虾们帮忙看一下

0
悬赏园豆:10 [已解决问题] 解决于 2010-01-05 08:32

public static IList<string> strlist = null;

 

public IList<string> setArray(string str)
{
       strlist.Add(str);
       return strlist;
}

public IList<string> getArray()
{
            IList<string> rtn = strlist;
            strlist.Clear();
            return rtn;
}

 

private void button1_Click(object sender, EventArgs e)
{
          setArray("a");
}

 

我想问一下为什么strlist.Add(str);的时候会报错,不能存字符串到里面去吗?

问题补充: public IList<string> getArray() { IList<string> rtn = strlist; strlist.Clear(); return rtn; } 我已经定义了个新的IList<string> rtn = strlist;为什么strlist.Clear();后,rtn的值空了?
大草包的主页 大草包 | 小虾三级 | 园豆:1745
提问于:2009-12-30 10:25
< >
分享
最佳答案
0

public static IList<string> strlist = new List<string>();

需要先初始化一下

收获园豆:10
小火 | 菜鸟二级 |园豆:242 | 2009-12-30 10:28
public IList<string> getArray() { IList<string> rtn = strlist; strlist.Clear(); return rtn; } 我已经定义了个新的IList<string> rtn = strlist;为什么strlist.Clear();后,rtn的值空了?
大草包 | 园豆:1745 (小虾三级) | 2009-12-30 10:51
@.net亮: 引用类型的原因
颜昌钢 | 园豆:150 (初学一级) | 2009-12-30 10:53
@颜昌钢:有什么不对吗?
大草包 | 园豆:1745 (小虾三级) | 2009-12-30 10:55
@.net亮: IList<string> rtn = strlist 这样写,rtn与strlist都指向同一内存地址,不论您对rtn 还是strlist操作,都是一样的呀?
颜昌钢 | 园豆:150 (初学一级) | 2009-12-30 11:02
@颜昌钢:有什么办法,我想取完数据清楚前面个泛型
大草包 | 园豆:1745 (小虾三级) | 2009-12-30 11:12
@.net亮: IList<string> rtn = new List<string>(); foreach(string str in strlist) { rtn.Add(str); } strlist.Clear(); reutn rtn;
颜昌钢 | 园豆:150 (初学一级) | 2009-12-30 11:17
@颜昌钢:不错,可以,兄弟厉害的。
大草包 | 园豆:1745 (小虾三级) | 2009-12-30 11:23
其他回答(2)
0

这不是泛型的问题,你根本就没弄明白什么叫对象

chenleinet | 园豆:270 (菜鸟二级) | 2009-12-30 13:26
0

先了解下值类型和引用类型的区别吧

OOLi | 园豆:163 (初学一级) | 2009-12-30 13:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册