Classe Platform::WeakReference

Representa uma referência fraca a uma instância de uma classe ref.

Sintaxe

class WeakReference

Parâmetros

Membros

Construtores

Membro Descrição
WeakReference::WeakReference Inicializa uma nova instância da classe WeakReference.

Métodos

Membro Descrição
WeakReference::Resolve Retorna um identificador à classe ref subjacente ou nullptr, caso o objeto não exista mais.

Operadores

Membro Descrição
WeakReference::operator= Atribui um novo valor ao objeto WeakReference.
WeakReference::operator BoolType Implementa o padrão de bool seguro.

Comentários

A própria classe WeakReference não é uma classe ref e, portanto, não herda de Platform::Object^ e não pode ser usada na assinatura de um método público.

WeakReference::operator=

Atribui um valor a WeakReference.

Sintaxe

WeakReference& operator=(decltype(__nullptr));
WeakReference& operator=(const WeakReference& otherArg);
WeakReference& operator=(WeakReference&& otherArg);
WeakReference& operator=(const volatile ::Platform::Object^ const otherArg);

Comentários

A última sobrecarga na lista acima permite que você atribua uma classe ref a uma variável WeakReference. Nesse caso, a classe da referência é rebaixada para Platform::Object^. Você restaura o tipo original posteriormente especificando-o como argumento para o parâmetro de tipo na função de membro WeakReference::Resolve<T>.

WeakReference::operator BoolType

Implementa o padrão de bool seguro para a classe WeakReference. Não deve ser chamada explicitamente em seu código.

Sintaxe

BoolType BoolType();

Método WeakReference::Resolve (namespace da plataforma)

Retorna um identificador à classe ref original ou nullptr, caso o objeto não exista mais.

Sintaxe

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

Parâmetros

Valor da propriedade/Valor do retorno

Um identificador para a classe ref à qual o objeto WeakReference foi associado anteriormente, ou nullptr.

Exemplo

Bar^ bar = ref new Bar();
//use bar...

if (bar != nullptr)
{
    WeakReference wr(bar);
    Bar^ newReference = wr.Resolve<Bar>();
}

Observe que o parâmetro de tipo é T, não T^.

Construtor WeakReference::WeakReference

Fornece várias maneiras de construir um WeakReference.

Sintaxe

WeakReference();
WeakReference(decltype(__nullptr));
WeakReference(const WeakReference& otherArg);
WeakReference(WeakReference&& otherArg);
explicit WeakReference(const volatile ::Platform::Object^ const otherArg);

Exemplo

MyClass^ mc = ref new MyClass();
WeakReference wr(mc);
MyClass^ copy2 = wr.Resolve<MyClass>();

Confira também

Namespace de plataforma