110,825
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
Dictionary<string, PluginsInfo> dic = new Dictionary<string, PluginsInfo>();
PluginsInfo pluginsInfo = new PluginsInfo();
pluginsInfo.Name = "2222";
dic.Add("2", pluginsInfo);
MessageBox.Show("对象本身:"+ReferenceEquals(pluginsInfo, dic["2"]).ToString());
MessageBox.Show("对象的参数:" + ReferenceEquals(pluginsInfo.Name, dic["2"].Name).ToString());
得到的结果是:true true
Dictionary<string, DataCell> dic = new Dictionary<string, DataCell>();
DataCell data=new DataCell();
data.DataValue = "www";
dic.Add("2", data);
MessageBox.Show("对象本身:" + ReferenceEquals(data, dic["2"]).ToString());
MessageBox.Show("对象的参数:" + ReferenceEquals(data.DataValue, dic["2"].DataValue).ToString());
得到的结果是:false true
对于这两种结果想不清楚为什么,两者只是value的类型不同。
找到原因了,因为两个value一个是值类型一个是引用类型