public static TypeCode GetTypeCode(Type type)
{
if (type == null)
{
return TypeCode.Empty;
}
if (type.IsEnum)
{
type = type.GetEnumUnderlyingType();
}
Universe u = type.Module.universe;
if (type == u.System_Boolean)
{
return TypeCode.Boolean;
}
else if (type == u.System_Char)
{
return TypeCode.Char;
}
else if (type == u.System_SByte)
{
return TypeCode.SByte;
}
else if (type == u.System_Byte)
{
return TypeCode.Byte;
}
else if (type == u.System_Int16)
{
return TypeCode.Int16;
}
else if (type == u.System_UInt16)
{
return TypeCode.UInt16;
}
else if (type == u.System_Int32)
{
return TypeCode.Int32;
}
else if (type == u.System_UInt32)
{
return TypeCode.UInt32;
}
else if (type == u.System_Int64)
{
return TypeCode.Int64;
}
else if (type == u.System_UInt64)
{
return TypeCode.UInt64;
}
else if (type == u.System_Single)
{
return TypeCode.Single;
}
else if (type == u.System_Double)
{
return TypeCode.Double;
}
else if (type == u.System_DateTime)
{
return TypeCode.DateTime;
}
else if (type == u.System_DBNull)
{
return TypeCode.DBNull;
}
else if (type == u.System_Decimal)
{
return TypeCode.Decimal;
}
else if (type == u.System_String)
{
return TypeCode.String;
}
else
{
return TypeCode.Object;
}
}