Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1046 of 1492 menu
◀ ▶

Свойство Target

Target есть у необобщённого WeakReference. Пока сильная ссылка жива, Target != null. Типизированный доступ - TryGetTarget у WeakReference<T>.

Синтаксис

object target = weakReference.Target;

Пример

Давайте прочитать цель, пока объект жив:

using System; class Program { static void Main() { object obj = new object(); var weak = new WeakReference(obj); bool res = weak.Target != null; Console.WriteLine(res); } }

Результат выполнения кода:

True

Пример

Давайте сравнить цель с исходной ссылкой:

using System; class Program { static void Main() { object obj = new object(); var weak = new WeakReference(obj); bool res = ReferenceEquals(weak.Target, obj); Console.WriteLine(res); } }

Результат выполнения кода:

True

Пример

Давайте обнулить ссылку и собрать мусор:

using System; class Program { static void Main() { object obj = new object(); var weak = new WeakReference(obj); obj = null; GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); bool res = weak.Target != null; Console.WriteLine(res); } }

Результат выполнения кода:

False

Смотрите также

  • свойство IsAlive,
    объект ещё жив
  • метод TryGetTarget,
    типизированный доступ
  • WeakReference,
    класс слабой ссылки
  • метод Collect,
    сборка мусора
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить