永发信息网

c#两个字典中存的东西一样 改变其中一个字典的值 另一个字典的值也会改变么

答案:1  悬赏:10  手机版
解决时间 2021-04-03 06:11
  • 提问者网友:沦陷
  • 2021-04-03 02:50
c#两个字典中存的东西一样 改变其中一个字典的值 另一个字典的值也会改变么
最佳答案
  • 五星知识达人网友:胯下狙击手
  • 2021-04-03 03:19
如果题主指的是:
class Person 
{
    public string Name {get; set;}
    public int Age {get; set;}
}

Dictionary dict1 = new Dictionary();
Dictionary dict2 = new Dictionary();

Person person = new Person()
{
    Name = "John",
    Age = 20
};
dict1.Add(10086, person);
dict2.Add(10010, person);那么:

dict1[10086].Name = "Tom";
Console.WriteLine(dict2[10010].Name); // Tom但:
dict1[10086] = new Person()
{
    Name = "Tom"
};
Console.WriteLine(dict2[10010].Name); // John

比较基本的引用类型和值类型区别的问题,题主可以自行搜索二者的区别。
追问


追答比较基础的引用类型和值类型区别的问题,题主可以自行搜索二者的区别。追问public Dictionary jiNengDic = new Dictionary();
public Dictionary renWuJiNengDic = new Dictionary();
我给他了一个新的空间啊

追答对于 Dictionary 这个类型来说,确实是两个空间了;但 JiNeng 呢?它不是引用类型?题主的写法难道不是把同一个 JiNeng 对象分别放到了两个 Dictionary 对象里吗?不管放到几个字典里,不都是同一个 JiNeng 对象吗?

这几个问题题主好好琢磨琢磨。追问懂了 主要是要给jiNeng 开辟一个新的空间
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯