Знали ли вы что :
Выведет на консоль: 16.
НО
Выведет на консоль: 15.
Это справедливо как для шарпа так и для java. Короче кто шарит, может объяснить почему так? Ведь по идее все объекты передаются по ссылке а следовательно по тому адресу на который ссылается ссылка мы по идее вполне можем записать новый объект. А оказалось что это не так.
Код:
private class TestClass
{
public int Test;
}
private static void Main()
{
TestClass t = new TestClass();
[color=Red] t.Test = 15[/color]
Make(t);
Console.WriteLine(t.Test);
Console.ReadLine();
}
private static void Make(TestClass t)
{
[color=red] ++t.Test;[/color]
}
Выведет на консоль: 16.
НО
Код:
private class TestClass
{
public int Test;
}
private static void Main()
{
TestClass t = new TestClass();
[color=red] t.Test = 15[/color]
Make(t);
Console.WriteLine(t.Test);
Console.ReadLine();
}
private static void Make(TestClass t)
{
[COLOR="Red"] t=new TestClass();
t.Test = 16;[/COLOR]
}
Выведет на консоль: 15.
Это справедливо как для шарпа так и для java. Короче кто шарит, может объяснить почему так? Ведь по идее все объекты передаются по ссылке а следовательно по тому адресу на который ссылается ссылка мы по идее вполне можем записать новый объект. А оказалось что это не так.