我認爲下面的代碼將使我的問題清晰。如果它們都是有價值的,爲什麼它們是不同的。Java和C#通過價值差異
下面C#:
static void Main(string[] args)
{
var list = new List<int> {1, 2, 3,};
ChangeVars(list);
foreach (var i in list)
{
Console.WriteLine(i);
}
Console.Read();
}
private static void ChangeVars(List<int> list)
{
for(int i = 0; i < list.Count; i++)
{
list[i] = 23;
}
}
返回23,23,23,
的Java下面:
public static void main(String[] args)
{
List<Integer> goods = new ArrayList<Integer>();
goods.add(1); goods.add(2); goods.add(3);
ChangeThings(goods);
for(int item: goods)
{
System.out.println(item);
}
}
private static void ChangeThings(List<Integer> goods)
{
for(int item: goods)
{
item = 23;
}
}
返回1,2,3
我不瞭解差異。
那麼,清理的事情吧。感謝所有爲你提供幫助的人。 –