Ссылки на классы - недопонимание - C#

Узнай цену своей работы

Формулировка задачи:

Есть большое недопонимание в ссылочных данных (или как их называют). К вот примеру есть класс TabInfo, когда передаем его ссылку в конструктор другого класса(будет называть его второй формой) вот таким образом
TabInfo ti;
ProgramInfo pi; 
 
public EditorForm(TabInfo ti)
{
    this.ti = ti;
    this.pi = ti.pi;
}
и в дальнейшем будем использовать данные из TabInfo в этой второй форме, к примеру данные pi класса ProgramInfo то все замечательно, но до того момента когда в первой форме (где изначально создался класс TabInfo) изменятся данные в классе ProgramInfo, тогда во второй форме остаются не измененные старые данные ProgramInfo. А если не создавать отдельную поле pi для ProgramInfo, а обращаться к данным ProgramInfo через свойство вот таким образом ProgramInfo PI { get { return ti.pi; } }
TabInfo ti;
ProgramInfo PI { get { return ti.pi; } } 
 
public EditorForm(TabInfo ti)
{
    this.ti = ti;
}
то после изменения данных в первой форме, данные изменятся и во второй. Почему так происходит, почему такая разница? зы: извиняюсь, что написал так все сумбурно или не правильно.

Решение задачи: «Ссылки на классы - недопонимание»

textual
Листинг программы
ProgramInfo x = new ProgramInfo() { Value = 1 };
ProgramInfo y = x;
x = new ProgramInfo { Value = 2 };
Console.WriteLine(y.Value); // 1

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы