Platform::WeakReference クラス
ref クラスのインスタンスへの弱い参照を表します。
構文
class WeakReference
パラメーター
メンバー
コンストラクター
メンバー | 説明 |
---|---|
WeakReference::WeakReference | WeakReference クラスの新しいインスタンスを初期化します。 |
メソッド
メンバー | 説明 |
---|---|
WeakReference::Resolve | 基になる ref クラスへのハンドル、またはオブジェクトが存在しない場合は nullptr を返します。 |
演算子
メンバー | 説明 |
---|---|
WeakReference::operator= | 新しい値を WeakReference オブジェクトに代入します。 |
WeakReference::operator BoolType | 安全な bool パターンを実装します。 |
解説
WeakReference クラス自体は ref クラスではありません。したがって、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 クラスを代入できます。 この場合、ref クラスは Platform::Object^ にダウンキャストされます。 後から元の型を復元するには、それを WeakReference::Resolve<T> メンバー関数の型パラメーターの引数として指定します。
WeakReference::operator BoolType
WeakReference クラスの安全な bool パターンを実装します。 コードから明示的に呼び出されることはありません。
構文
BoolType BoolType();
WeakReference::Resolve メソッド (Platform 名前空間)
元の 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>();