C#で var_dump
C#で var_dump するいい例がなかったので作った。
public static String var_dump(object obj)
{
if (obj == null
|| obj is uint || obj is int
|| obj is ushort || obj is short
|| obj is byte || obj is byte
|| obj is float || obj is double || obj is bool
|| obj is UInt16 || obj is Int16
|| obj is UInt32 || obj is Int32
|| obj is UInt64 || obj is Int64
)
{
return obj.ToString();
}
if (obj is string)
{
return "\"" + obj.ToString() + "\"";
}
string ret ;
IEnumerable ienum = obj as IEnumerable;
if (ienum != null)
{
ret = "[";
foreach (object o in ienum)
{
ret += var_dump(o) + ",";
}
return ret + "]";
}
ret = "{";
const BindingFlags FINDS_FLAG = BindingFlags.Public | BindingFlags.NonPublic |
BindingFlags.Instance | BindingFlags.Static |
BindingFlags.DeclaredOnly;
FieldInfo[] infoArray = obj.GetType().GetFields(FINDS_FLAG);
foreach (FieldInfo info in infoArray)
{
object o = info.GetValue(obj);
ret += info.Name + ": " + var_dump( o ) + ",";
}
return ret + "}";
}