Поделиться через


Класс Platform::WeakReference

Представляет слабую ссылку на экземпляр класса ссылок.

Синтаксис

class WeakReference

Параметры

Участники

Конструкторы

Элемент Description
WeakReference::WeakReference Инициализирует новый экземпляр класса WeakReference.

Методы

Элемент Description
WeakReference::Resolve Возвращает дескриптор базовому классу ссылок или значение nullptr, если объект больше не существует.

Операторы

Элемент Description
WeakReference::operator= Присваивает новое значение объекту WeakReference.
WeakReference::operator BoolType Реализует безопасный логический шаблон.

Замечания

Класс WeakReference сам не является классом ссылок и поэтому не наследуется от Platform::Object^ и не может использоваться в сигнатуре открытого метода.

WeakReference::operator=

Присваивает значение WeakReference.

Синтаксис

WeakReference& operator=(decltype(__nullptr));
WeakReference& operator=(const WeakReference& otherArg);
WeakReference& operator=(WeakReference&& otherArg);
WeakReference& operator=(const volatile ::Platform::Object^ const otherArg);

Замечания

Последняя перегрузка в списке выше позволяет назначить класс ссылок переменной WeakReference. В этом случае класс ref переадресуется в Platform::Object^. Вы восстановите исходный тип позже, указав его в качестве аргумента для параметра типа в функции-члене WeakReference::Resolve<T> .

WeakReference::operator BoolType

Реализует безопасный шаблон bool для класса WeakReference. Не предназначен для явного вызова в коде.

Синтаксис

BoolType BoolType();

Метод WeakReference::Resolve (пространство имен Platform)

Возвращает дескриптор для исходного класса ссылок или nullptr, если объект больше не существует.

Синтаксис

template<typename T>
T^ Resolve() const;

Параметры

Значение свойства/возвращаемое значение

Дескриптор класс ссылок, с которым ранее был связан объект WeakReference, или значение nullptr.

Пример

Bar^ bar = ref new Bar();
//use bar...

if (bar != nullptr)
{
    WeakReference wr(bar);
    Bar^ newReference = wr.Resolve<Bar>();
}

Обратите внимание, что параметр типа — T, а не T^.

Конструктор WeakReference::WeakReference

Предоставляет различные способы построения WeakReference.

Синтаксис

WeakReference();
WeakReference(decltype(__nullptr));
WeakReference(const WeakReference& otherArg);
WeakReference(WeakReference&& otherArg);
explicit WeakReference(const volatile ::Platform::Object^ const otherArg);

Пример

MyClass^ mc = ref new MyClass();
WeakReference wr(mc);
MyClass^ copy2 = wr.Resolve<MyClass>();

См. также

Пространство имен Platform