【发布时间】:2013-02-03 05:01:50
【问题描述】:
我熟悉 C++,但对 C# 有点陌生。
将对象添加到容器时,它们是通过引用传递还是通过值传递?
也就是说,如果我这样做:
myClass m = new myClass(0); //Assume the class just holds an int
List<myClass> myList = new List<myClass>(1);
myList.Add(m);
myList[0] += 1;
Console.WriteLine(m);
Console.WriteLine(myList[0]);
结果会是:
0
1
还是会
1
1
?
如果是前者,那我怎样才能让它做后者呢?我的第一直觉是做类似的事情
myClass ref mref = m;
Console.WriteLine(mref);
但这似乎不是有效的语法。
【问题讨论】:
-
“结果会是这样吗?” - 自己尝试并不难!顺便说一句……
-
除了你从未说过,你的
myClass是 - 引用或值类型 -
我假设这里是引用类型
-
@Andy:你要解决的实际问题是什么......???
-
我有一个我正在编程的游戏的怪物数组,我正在尝试用健康> 0的怪物填充字典,使用整数键,以便我可以显示键值和当前的健康并允许用户选择一个,然后立即开始修改它。我希望更改渗透到原始阵列中的怪物。我知道还有更多迂回的方法可以做到这一点,但我想知道这是否可能。
标签: c# reference containers