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>();