On Wed, 27 Apr 2011 11:08:23 -0400, Alexander <aldem+dm...@nk7.net> wrote:

On 27.04.2011 16:48, Steven Schveighoffer wrote:

basically, dispose cleans up resources *knowing* that all its references are still valid.

Right, but cleaning of resources doesn't mean that object will be destructed - it can be reused afterwards (connection reestablished, file reopened etc).

I don't think reuse is a requirement of dispose. It might be that those resources are only allocated on construction, which would require you to re-construct the object. I think the only difference between the destructor (finalizer) and dispose is that dispose is guaranteed that all the memory is still allocated, whereas the finalizer is not given that guarantee.

The deallocation of object memory is a separate thing (outside dispose or the destructor).

That's why I think that clear() is bad name choice, when it leads to destruction :)

The name choice is no longer up for debate. It's already set in print, and in the language.

-Steve

Reply via email to