Hi Gustavo Did you mean object destructor or did you really mean a class destructor?
For a *class* destructor, I would say that accessing methods of member objects would be correct because, AFAIK, as there isn't any other point at which the class is told to release it's resources. For an *object* destructor, I would say that accessing methods of member objects is incorrect: implement IDisposable instead. As I understand it, disposal happens as requested or when an object is made available for garbage collection, whereas destruction is done whenever the garbage collector decides to get around to it. When destruction happens, you have no guarantee that any of your references to member objects are still valid. I'm sure someone will correct me if I'm wrong, but for now that's my two cents. Jason -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Gustavo Garc�a Bernardo Sent: Thursday, March 04, 2004 10:24 AM To: [EMAIL PROTECTED] Subject: [Mono-list] Accessing member objects in destructors Hi, Reading the Mono code i have seen sometimes a class destructor access a method of a member object: Socket socket = new Socket(); ~XXXX { socket.Close (); } Is this correct? You can assert the socket object is not freed before XXX object? Thx, best regards. G. _______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list _______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list
