Удаление обьекта
От: Holms США  
Дата: 09.11.08 20:04
Оценка:
День добрый

Возможно это будет вопрос для первого класса не все-таки спрошу
Есть такой код

using System;
using System.Collections.Generic;

namespace TestWeakReference
{
  class Program
  {
    static void Main()
    {
      List<MyClass> list = new List<MyClass>
                             {
                               new MyClass { msg = "unu" },
                               new MyClass { msg = "doi" },
                               new MyClass { msg = "trei" },
                               new MyClass { msg = "patru" },
                             };

      List<WeakReference> weaks = new List<WeakReference>();
      foreach (MyClass myClass in list)
      {
        weaks.Add(new WeakReference(myClass));
      }


      Console.WriteLine("All must be alive");
      foreach (WeakReference weak in weaks)
      {
        Console.WriteLine(string.Format("Alive {0}, class = {1}", weak.IsAlive, ((MyClass)weak.Target).msg));
      }

      //find needed one
      MyClass my = list.Find(class1 => class1.msg == "doi");

      //do something with it and delete from list
      list.Remove(my);
      my = null; //Как здесь убить обьект что-бы WeakReference.IsAlive в другом списке была False
      //check weaks

      Console.WriteLine("\tOne must be dead");
      foreach (WeakReference weak in weaks)
      {
        Console.WriteLine(string.Format("Alive {0}, class = {1}", weak.IsAlive, ((MyClass)weak.Target).msg));
      }


      Console.ReadKey();
    }
  }

  class MyClass
  {
    public string msg { get; set; }
  }
}


Собственно, как убить обьект и ссылки на него?

Спасибо
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
The life is relative and reversible.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.