次のコードを検討してください。
var weakRef = new WeakReference(new StringBuilder("Mehran"));
if (weakRef.IsAlive)
{
// Garbage Collection might happen.
Console.WriteLine((weakRef.Target as StringBuilder).ToString());
}
GC.Collectチェック後weakRef.IsAlive、 を使用する前にを実行することは可能ですweakRef.Target。
私はこれで間違っていますか?可能であれば、安全な方法はありますか?
たとえば、次のような APIweakRef.GetTargetIfIsAlive()が適切です。