public EnumLayout(string name, BasicFieldType underlyingType)
{
switch (underlyingType)
{
case BasicFieldType.UInt8:
case BasicFieldType.Int8:
case BasicFieldType.UInt16:
case BasicFieldType.Int16:
case BasicFieldType.UInt32:
case BasicFieldType.Int32:
case BasicFieldType.StringID:
break;
default:
throw new ArgumentException("The underlying type of an enum must be an integer type.");
}
Name = name;
UnderlyingType = underlyingType;
Values = _values.AsReadOnly();
}