Home   Cover Cover Cover Cover
 

Enumerations

/csbook/solutions/03/A04.cs
using System;
using System.Text;

enum Color {red, blue, green}

class Test {
  
  static string ReadString() {
    StringBuilder b = new StringBuilder();
    int c = Console.Read();
    while (0 <= c && c < ' ') c = Console.Read();
    while (c >= ' ') {
      b.Append((char)c);
      c = Console.Read();
    }
    return b.ToString();
  }
  
  /// Read an enumeration value of type t from the console
  static object ReadEnum(Type t) {
    string s = ReadString();
    if (s == null || s == "") return null;
    else return Enum.Parse(t, s);
  }
  
  /// Write an enumeration value obj to the console
  static void WriteEnum(object obj) {
    Console.Write(obj.ToString());
  }
  
  public static void Main() {
    try {
      for (;;) { // terminate when an invalid enumeration value is entered
        Console.Write('>');
        Color col = (Color) ReadEnum(typeof(Color));
        WriteEnum(col);
        Console.WriteLine();
      }
    } catch(Exception) {
    }
  }
}