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 开辟一个新的空间
class Person
{
public string Name {get; set;}
public int Age {get; set;}
}
Dictionary
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
public Dictionary
我给他了一个新的空间啊
追答对于 Dictionary 这个类型来说,确实是两个空间了;但 JiNeng 呢?它不是引用类型?题主的写法难道不是把同一个 JiNeng 对象分别放到了两个 Dictionary 对象里吗?不管放到几个字典里,不都是同一个 JiNeng 对象吗?
这几个问题题主好好琢磨琢磨。追问懂了 主要是要给jiNeng 开辟一个新的空间
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯