Platform::WeakReference 类

表示对 ref 类实例的弱引用。

语法

class WeakReference

参数

成员

构造函数

成员 说明
WeakReference::WeakReference 初始化 WeakReference 类的新实例。

方法

成员 说明
WeakReference::Resolve 如果对象不再存在,则返回基础 ref 类的句柄或 nullptr。

运算符

成员 说明
WeakReference::operator= 给 WeakReference 对象赋新值。
WeakReference::operator BoolType 实现安全布尔模式。

注解

WeakReference 类本身不是 ref 类,因此不从 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 类。 在此情况下,ref 类向下转换到 Platform::Object^。 稍后,可通过将原始类型指定为 WeakReference::Resolve<T> 成员函数中类型参数的自变量来还原原始类型。

WeakReference::operator BoolType

实现 WeakReference 类的安全 bool 模式。 不在你的代码中显式调用。

语法

BoolType BoolType();

WeakReference::Resolve 方法(平台命名空间)

如果对象不再存在,则返回原始 ref 类的句柄或 nullptr

语法

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

参数

属性值/返回值

WeakReference 对象先前关联的 ref 类的句柄或 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 命名空间