public static Array GetValues(Type enumType)
{
if (enumType == null)
throw new ArgumentNullException("enumType");
if (!(enumType is RuntimeType))
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"), "enumType");
if (!enumType.IsEnum)
throw new ArgumentException(Environment.GetResourceString("Arg_MustBeEnum"), "enumType");
// Get all of the values
ulong[] values = GetHashEntry(enumType).values;
// Create a generic Array
Array ret = Array.CreateInstance(enumType, values.Length);
for (int i = 0; i < values.Length; i++)
{
Object val = ToObject(enumType, values[i]);
ret.SetValue(val, i);
}
return ret;
}