Weak Reference class that allows a referenced object to be garbage-collected.

A WeakRef may be used exactly like the object it references.
