Casting from object
#include "stdafx.h" using namespace System; using namespace System::Collections; ref class Book{ public: Book(){ } Book(String^ _title) { Title = _title; } property String^ Title; }; int main(){ ArrayList^ theList = gcnew ArrayList(); theList->Add( gcnew Book("Men") ); Book^ book = safe_cast<Book^>( theList[0] ); Console::WriteLine(book->Title ); theList->Add( gcnew String("data")); try{ book = safe_cast<Book^>( theList[1] ); }catch(InvalidCastException^ e){ Console::WriteLine("wrong type"); } }