170 похожих чатов

Есть три класса. В первом публичное свойство, тут в методе

создается экземпляр второго класса, ссылка на этот второй класс теперь содержится в публичном свойстве. В третьем классе в приватное поле кешируется ссылка из первого класса на второй класс через свойство (где содержится экземпляр класса 2). Теперь если в первом классе заново создать экземпляр второго класса и поместить его в свойство, то в первом классе остается закешированный экземпляр с первого раза! Как сделать, чтобы в закешированных ссылках автоматом обновлялись экземпляры классов на новые?

13 ответов

8 просмотров

Звучит немного странно, но как вариант сделать ивенты

Можно погуглить INotifyPropertyChanged

Serg from FarCry- Автор вопроса
Andrew Shurunov
Звучит немного странно, но как вариант сделать иве...

Я немного не так выразился. Сделать то я могу чтобы обновлялось. Но я хочу понять, почему не обновляется экземпляр объекта. Там ведь ссылочный тип.

Serg from FarCry
Я немного не так выразился. Сделать то я могу чтоб...

Я так понял, у тебя есть два класса. Забудем про публичность и приватность для примера: class A{ public C Prop {get; set;} } class B{ public C Prop {get;set;} } И ты пишешь: var a = new A(); A.Prop = new C(); var b = new B(); var b.Prop = a.Prop; a.Prop = new C(); Да?

Serg from FarCry- Автор вопроса
Andrew Shurunov
Я так понял, у тебя есть два класса. Забудем про п...

Проще накидал пример public class ClassTest { public int Num { get; } public ClassTest(int num) { Num = num; } } private ClassTest _classTest; private void StartTest() { ClassTest classTest = new ClassTest(1); _classTest = classTest; Debug.Log($"Value {classTest.Num}, Cached Value {_classTest.Num}"); classTest = new ClassTest(2); //_classTest = classTest; Debug.Log($"Value {classTest.Num}, Cached Value {_classTest.Num}"); }

Serg from FarCry
Проще накидал пример public class ClassTest { pu...

Так у тебя classTest теперь ссылается на новое значение, а _classTest на старое

Serg from FarCry- Автор вопроса
Andrew Shurunov
Так у тебя classTest теперь ссылается на новое зна...

Почему так происходит? Ведь классы это ссылочный тип.

Serg from FarCry
Почему так происходит? Ведь классы это ссылочный т...

classTest и _classTest никак не связаны Изначально они "по совпадению" ссылались на один и тот же объект Потом ты одну ссылку изменил, а другую нет

Serg from FarCry
Почему так происходит? Ведь классы это ссылочный т...

new ClassTest меняет ссылку, а не меняет содержимое по ссылке

Serg from FarCry- Автор вопроса
Andrew Shurunov
Так у тебя classTest теперь ссылается на новое зна...

Ну вообще как-то нелогично, тип ссылочный, а получается остается старый экземпляр, вместо того что ссылаться на первоисточник ссылки. По логике заменив который новым экземляром, все закешированные ссылки должны указывать на него.

Serg from FarCry
Ну вообще как-то нелогично, тип ссылочный, а получ...

Тут будто бы ты ожидаешь, что вторая переменная будет вести себя не как указатель, а как указатель на указатель

Serg from FarCry
А такое невозможно?

Только если через небезопасный код. Или самому обертку написать, которая будет вести себя как указатель на указатель

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
Добрый день, чат. Мне в очередь из других RabbitMQ по shovel валятся метрики в формате текста для Prometheus. Помогите пожалуйста подружить RabbitMQ и Prometheus, чтобы он (...
Aleksey
4
@ahndmn @ayaw0_0 здарова, на чем пишете?
Aiwan \ (•◡•) / _bot
7
Карта сайта