c# 如何在Dictionary 里value保留数组的引用

popoTea 2015-11-25 10:54:29
class 1{
 String [] str1;
 String [] str2 ;
Dictionary<string, String [] > classHolder;

方法1 {
classHolder = new Dictionary<string, String [] >() ;
classHolder.Add("1", str );
classHolder.Add("2", str2);
}

方法2{
 String [] str1 = null;
 String [] str2 = null;
str1 = new ....//重新赋值
str2 = new ....//重新赋值
}


方法3{
// 遍列 classHolder 时,发现 value都为空。

}

}


顺序执行 方法1、方法2、方法3
在方法3中 遍列 classHolder 时,发现 value都为空。Dictionary 没办法保留对象有引用吗?
...全文
564 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel6709 2015-11-30
  • 打赏
  • 举报
回复
这是一个指针常量
清江堤畔 2015-11-25
  • 打赏
  • 举报
回复
楼主在执行方法1时,str1 和 str2 都是 null 的,在执行方法2时,虽然赋值了,但没有添加或更新到字典当中,所以读出来的值都是 null
Poopaye 2015-11-25
  • 打赏
  • 举报
回复
你先搞清楚啥叫引用吧 当你执行了str1 = new...时已经是一个新的引用了 object.ReferenceEquals(classHolder["1"], str1); //false
popoTea 2015-11-25
  • 打赏
  • 举报
回复
引用 1 楼 feiyun0112 的回复:
方法2{ String [] str1 = null; String [] str2 = null; str1 = new ....//重新赋值 str2 = new ....//重新赋值 } 你这是给局部变量str1,str2赋值啊
抱歉写错了, 方法2{ str1 = null; str2 = null; ..... str1 = new ....//重新赋值 str2 = new ....//重新赋值 } (凭印象写)
feiyun0112 2015-11-25
  • 打赏
  • 举报
回复
方法2{
String [] str1 = null;
String [] str2 = null;
str1 = new ....//重新赋值
str2 = new ....//重新赋值
}

你这是给局部变量str1,str2赋值啊

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧