Boo.Lang.Runtime.RuntimeServices.op_ShiftRight C# (CSharp) Метод

op_ShiftRight() приватный статический Метод

private static op_ShiftRight ( object lhs, TypeCode lhsTypeCode, object rhs, TypeCode rhsTypeCode ) : object
lhs object
lhsTypeCode TypeCode
rhs object
rhsTypeCode TypeCode
Результат object
        private static object op_ShiftRight(object lhs, TypeCode lhsTypeCode,
            object rhs, TypeCode rhsTypeCode)
        {
            IConvertible lhsConvertible = (IConvertible)lhs;
            IConvertible rhsConvertible = (IConvertible)rhs;

            switch(rhsTypeCode)
            {
                case TypeCode.Decimal:
                case TypeCode.Double:
                case TypeCode.Single:
                    throw new ArgumentException(lhsTypeCode + " >> " + rhsTypeCode);
                default:
                    break;
            }

            switch (lhsTypeCode)
            {
                case TypeCode.Decimal:
                case TypeCode.Double:
                case TypeCode.Single:
                    throw new ArgumentException(lhsTypeCode + " >> " + rhsTypeCode);
                case TypeCode.UInt64:
                    return lhsConvertible.ToUInt64(null) >> rhsConvertible.ToInt32(null);
                case TypeCode.Int64:
                    return lhsConvertible.ToInt64(null) >> rhsConvertible.ToInt32(null);
                case TypeCode.UInt32:
                    return lhsConvertible.ToUInt32(null) >> rhsConvertible.ToInt32(null);
                default:
                    return lhsConvertible.ToInt32(null) >> rhsConvertible.ToInt32(null);
            }
        }
RuntimeServices