Объекты передаются по ссылке! Или не совсем??!
Знали ли вы что :
Код:
private class TestClass НО Код:
private class TestClass Это справедливо как для шарпа так и для java. Короче кто шарит, может объяснить почему так? Ведь по идее все объекты передаются по ссылке а следовательно по тому адресу на который ссылается ссылка мы по идее вполне можем записать новый объект. А оказалось что это не так. |
Re: Объекты передаются по ссылке! Или не совсем??!
Да бред это, что объекты передаются по ссылке. Всегда возмущали подобные фразы (в том числе от преподавателей в универе много лет назад). Просто объект - это изначально ссылка. Ссылка передается по значению, т. е. внутри метода у нас копия ссылки на тот же объект. Объект тот же, но ссылка другая. Адреса у ссылок разные, значения одинаковые.
|
Re: Объекты передаются по ссылке! Или не совсем??!
А я то думал зачем в шарпе при передаче в параметр объекта можно прописать ref.
|
Re: Объекты передаются по ссылке! Или не совсем??!
УДАЛЕНО.
Показалось ява, а тут C++. |
Re: Объекты передаются по ссылке! Или не совсем??!
Цитата:
|
Re: Объекты передаются по ссылке! Или не совсем??!
Почему вместо
t = new TestClass(); этот код t.Test =new TestClass(); ? |
Re: Объекты передаются по ссылке! Или не совсем??!
Потому что второй вариант не копипастил а писал сразу в редакторе комментариев и про*бался
|
Re: Объекты передаются по ссылке! Или не совсем??!
Проверил, всё так~
http://i.imgur.com/GgMFf9l.png |
Re: Объекты передаются по ссылке! Или не совсем??!
По умолчанию в метод передается копия ссылки и во втором случае вы вешаете новый обьект именно на копию, оригинал остается неизменным. В случае с примитивами создается копия самого примитива (актуально как минимум для java). Рекомендую покурить операторы ref, out.
|
Re: Объекты передаются по ссылке! Или не совсем??!
А еще можно сделать объект статиком и все будет ок. Но это уже на любителя.
А еще можно вернуть измененный объект обратно. |
Текущее время: 06:55. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot