public override void StoreArrayElement(Type type)
{
if (type == null)
throw new ArgumentNullException("type");
switch (Type.GetTypeCode(type))
{
case TypeCode.Byte:
case TypeCode.SByte:
Emit1ByteOpCode(0x9C, 3, 0);
break;
case TypeCode.UInt16:
case TypeCode.Int16:
Emit1ByteOpCode(0x9D, 3, 0);
break;
case TypeCode.UInt32:
case TypeCode.Int32:
Emit1ByteOpCode(0x9E, 3, 0);
break;
case TypeCode.UInt64:
case TypeCode.Int64:
Emit1ByteOpCode(0x9F, 3, 0);
break;
case TypeCode.Single:
Emit1ByteOpCode(0xA0, 3, 0);
break;
case TypeCode.Double:
Emit1ByteOpCode(0xA1, 3, 0);
break;
default:
if (type.IsClass == true)
Emit1ByteOpCode(0xA2, 3, 0);
else
{
int token = this.GetToken(type);
Emit1ByteOpCodeInt32(0xA4, 3, 0, token);
}
break;
}
PopStackOperands(VESType.Object, VESType.Int32, ToVESType(type));
}