次の方法で共有


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

関連項目

プラットフォーム名前空間