Listing 7

using namespace System;

public enum class Color {Black, White, Red};
public enum class TransactionType : 
                     unsigned char {Deposit, Withdrawal, Transfer};
int main()
{
    Color c = Color::White;

/*1*/   Console::WriteLine("Color::Red's name is >{0}<",
        Enum::GetName(c.GetType(), Color::Red));
    Console::Write("Color's members are:");

/*2*/   array<String^>^ names = Enum::GetNames(Type::GetType("Color"));
    for each (String^ s in names)
    {
        Console::Write(" {0}", s);
    }
    Console::WriteLine();

/*3*/   Console::WriteLine("The type underlying Color is >{0}<",
        Enum::GetUnderlyingType(Color::typeid));

/*4*/   Console::WriteLine("The type underlying TransactionType is >{0}<",
        Enum::GetUnderlyingType(TransactionType::typeid));
}