Mega Code Archive

 
Categories / Visual C++ .NET / Class
 

Implements IDisposable

#include "stdafx.h" #include <msclr\auto_handle.h> using namespace System; using namespace msclr; ref class MyObject : public IDisposable { private:     String^ Name; public:     MyObject(String^ name) : Name(name)      {          Console::WriteLine("Constructor - {0}", Name);      }     ~MyObject()      {          Console::WriteLine("Destructor  - {0}", Name);          Name = nullptr;     } protected:     !MyObject()      {          Console::WriteLine("Finalize    - {0}", Name);           Name = nullptr;     } }; int main(array<System::String ^> ^args) {     {         MyObject^ NonAuto = gcnew MyObject("Non Auto no finally");     }     MyObject^ NonAutoWFinally;     try     {         NonAutoWFinally = gcnew MyObject("Non Auto with finally");     }     finally     {         delete NonAutoWFinally;     }     {         auto_handle<MyObject> Auto = gcnew MyObject("Auto");     }     return 0; }