Как найти все ссылки на объект и обнулить их? - C#
Формулировка задачи:
Всем здравствуйте.
я создаю объект:
далее в программе я могу его добавить в разные листы:
.....
возможно так-же я присваиваю этот объект полям других классов:
так вот в один прекрасный момент, я решаю удалить этот объект, и он должен удалиться из всех мест куда я его записал !!!
то есть у листов, в которые я его записал, должна быть вызвана функция list1.remove(obj)
а у классов как мне получить список существующих ссылок на этот объект, чтобы я мог это сделать?
var obj = new MyObject();
list1.add(obj); list2.add(obj);
SomeClass.obj = obj;
SomeClass.obj = null;
Решение задачи: «Как найти все ссылки на объект и обнулить их?»
textual
Листинг программы
class Program
{
static void Main(string[] args)
{
My res = new My();
List<object> test = new List<object>();
test.Add(res);
Console.WriteLine(res == test[0]);
res = null;
Console.WriteLine(res == test[0]);
Console.WriteLine(test[0].ToString());
Console.ReadKey();
}
}
class My
{
public override string ToString()
{
return "My Class";
}
}