TriAxis.RunSharp.CodeGen.GetStindOpCode C# (CSharp) Method

GetStindOpCode() protected static method

protected static GetStindOpCode ( Type type ) : OpCode
type IKVM.Reflection.Type
return System.Reflection.Emit.OpCode
        protected internal static OpCode GetStindOpCode(Type type)
        {
            if (type.IsPrimitive)
            {
                switch (Type.GetTypeCode(type))
                {
                    case TypeCode.Byte:
                    case TypeCode.SByte:
                    case TypeCode.Boolean:
                        return OpCodes.Stind_I1;

                    case TypeCode.Int16:
                    case TypeCode.UInt16:
                    case TypeCode.Char:
                        return OpCodes.Stind_I2;

                    case TypeCode.Int32:
                    case TypeCode.UInt32:
                        return OpCodes.Stind_I4;

                    case TypeCode.Int64:
                    case TypeCode.UInt64:
                        return OpCodes.Stind_I8;

                    case TypeCode.Single:
                        return OpCodes.Stind_R4;

                    case TypeCode.Double:
                        return OpCodes.Stind_R8;

                    default:
                        throw new NotSupportedException();
                }
            }
            else if (type.IsValueType)
                return OpCodes.Stobj;
            else
                return OpCodes.Stind_Ref;
        }