protected internal void EmitConvHelper(TypeCode to)
{
OpCode op;
switch (to)
{
case TypeCode.SByte:
op = OpCodes.Conv_I1; break;
case TypeCode.Byte:
op = OpCodes.Conv_U1; break;
case TypeCode.Int16:
op = OpCodes.Conv_I2; break;
case TypeCode.UInt16:
case TypeCode.Char:
op = OpCodes.Conv_U2; break;
case TypeCode.Int32:
op = OpCodes.Conv_I4; break;
case TypeCode.UInt32:
op = OpCodes.Conv_U4; break;
case TypeCode.Int64:
op = OpCodes.Conv_I8; break;
case TypeCode.UInt64:
op = OpCodes.Conv_U8; break;
case TypeCode.Single:
op = OpCodes.Conv_R4; break;
case TypeCode.Double:
op = OpCodes.Conv_R8; break;
default:
throw new NotSupportedException();
}
IL.Emit(op);
}