It doesn't make much sense, but there are times when it makes sense.
One example is in the Dispose() method. Consider this type:
public class Owner {
Now you can argue that this is not necessary, and you will be basically right. Normally, Dispose() is called only before the Owner dereferenced, and when the Owner is assembled, _bigAllocation will also be ... after all.
But:
Setting _bigAllocation to null makes it suitable for collection right away if no one else references it. This can be beneficial if Owner is in a higher number GC generation or has a finalizer. Otherwise, Owner must be released before _bigAllocation is eligible to collect.
It is rather a corner case. Most types should not have finalizers, and in most cases _bigAllocation and Owner will be in the same generation.
Craig stuntz
source share