public static void PrintStats(PlayerType player) { List <string> outputText = new List <string>(); string tmpValue = string.Empty; string tmpName = string.Empty; FieldInfo[] fi = typeof(PlayerType).GetFields(BindingFlags.Public | BindingFlags.Instance); foreach (FieldInfo info in fi) { string tmpType = info.FieldType.Name; object tmpData = info.GetValue(player); switch (tmpType) { case "Char[]": tmpValue = BtrieveUtility.ConvertToString((char[])tmpData); break; case "Int32[]": tmpValue = BtrieveUtility.ConvertIntArrayToStringArray((int[])tmpData); break; case "Int16[]": tmpValue = BtrieveUtility.ConvertIntArrayToStringArray((short[])tmpData); break; case "Byte[]": tmpValue = BtrieveUtility.ConvertIntArrayToStringArray((byte[])tmpData); break; default: tmpValue = info.GetValue(player).ToString(); break; } Console.WriteLine("{0}, {1}", info.Name, tmpValue); } }