Platform::WeakReference Class
Represents a weak reference to an instance of a ref class.
Syntax
class WeakReference
Parameters
Members
Constructors
Member | Description |
---|---|
WeakReference::WeakReference | Initializes a new instance of the WeakReference class. |
Methods
Member | Description |
---|---|
WeakReference::Resolve | Returns a handle to the underlying ref class, or nullptr if the object no longer exists. |
Operators
Member | Description |
---|---|
WeakReference::operator= | Assigns a new value to the WeakReference object. |
WeakReference::operator BoolType | Implements the safe bool pattern. |
Remarks
The WeakReference class itself is not a ref class and therefore it does not inherit from Platform::Object^ and cannot be used in the signature of a public method.
WeakReference::operator=
Assigns a value to a WeakReference.
Syntax
WeakReference& operator=(decltype(__nullptr));
WeakReference& operator=(const WeakReference& otherArg);
WeakReference& operator=(WeakReference&& otherArg);
WeakReference& operator=(const volatile ::Platform::Object^ const otherArg);
Remarks
The last overload in the list above enables you to assign a ref class to a WeakReference variable. In this case the ref class is downcast to Platform::Object^. You restore the original type later by specifying it as the argument for the type parameter in the WeakReference::Resolve<T> member function.
WeakReference::operator BoolType
Implements the safe bool pattern for the WeakReference class. Not to be called explicitly from your code.
Syntax
BoolType BoolType();
WeakReference::Resolve Method (Platform namespace)
Returns a handle to the original ref class, or nullptr
if the object no longer exists.
Syntax
template<typename T>
T^ Resolve() const;
Parameters
Property Value/Return Value
A handle to the ref class that the WeakReference object was previously associated with, or nullptr.
Example
Bar^ bar = ref new Bar();
//use bar...
if (bar != nullptr)
{
WeakReference wr(bar);
Bar^ newReference = wr.Resolve<Bar>();
}
Note that the type parameter is T, not T^.
WeakReference::WeakReference Constructor
Provides various ways to construct a WeakReference.
Syntax
WeakReference();
WeakReference(decltype(__nullptr));
WeakReference(const WeakReference& otherArg);
WeakReference(WeakReference&& otherArg);
explicit WeakReference(const volatile ::Platform::Object^ const otherArg);
Example
MyClass^ mc = ref new MyClass();
WeakReference wr(mc);
MyClass^ copy2 = wr.Resolve<MyClass>();