static OpCode GetStoreElementOpCode(Type type)
{
if (type.IsValueType)
{
if (type.IsEnum) return OpCodes.Stelem_I4;
switch (Type.GetTypeCode(type))
{
case TypeCode.Byte:
return OpCodes.Stelem_I1;
case TypeCode.Int16:
return OpCodes.Stelem_I2;
case TypeCode.Int32:
return OpCodes.Stelem_I4;
case TypeCode.Int64:
return OpCodes.Stelem_I8;
case TypeCode.Single:
return OpCodes.Stelem_R4;
case TypeCode.Double:
return OpCodes.Stelem_R8;
}
return OpCodes.Stobj;
}
return OpCodes.Stelem_Ref;
}