Класс 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>();