次のコードを検討してください。
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()
が適切です。