Microsoft.CSharp.RuntimeBinder.SymbolTable.IsOperator C# (CSharp) Method

IsOperator() private method

private IsOperator ( MethodInfo method ) : bool
method System.Reflection.MethodInfo
return bool
        private bool IsOperator(MethodInfo method)
        {
            return method.IsSpecialName &&
                method.IsStatic &&
                (method.Name == SpecialNames.ImplicitConversion ||
                method.Name == SpecialNames.ExplicitConversion ||

                // Binary Operators
                method.Name == SpecialNames.CLR_Add ||
                method.Name == SpecialNames.CLR_Subtract ||
                method.Name == SpecialNames.CLR_Multiply ||
                method.Name == SpecialNames.CLR_Division ||
                method.Name == SpecialNames.CLR_Modulus ||
                method.Name == SpecialNames.CLR_LShift ||
                method.Name == SpecialNames.CLR_RShift ||
                method.Name == SpecialNames.CLR_LT ||
                method.Name == SpecialNames.CLR_GT ||
                method.Name == SpecialNames.CLR_LTE ||
                method.Name == SpecialNames.CLR_GTE ||
                method.Name == SpecialNames.CLR_Equality ||
                method.Name == SpecialNames.CLR_Inequality ||
                method.Name == SpecialNames.CLR_BitwiseAnd ||
                method.Name == SpecialNames.CLR_ExclusiveOr ||
                method.Name == SpecialNames.CLR_BitwiseOr ||
                method.Name == SpecialNames.CLR_LogicalNot ||

                // Binary inplace operators.
                method.Name == SpecialNames.CLR_InPlaceAdd ||
                method.Name == SpecialNames.CLR_InPlaceSubtract ||
                method.Name == SpecialNames.CLR_InPlaceMultiply ||
                method.Name == SpecialNames.CLR_InPlaceDivide ||
                method.Name == SpecialNames.CLR_InPlaceModulus ||
                method.Name == SpecialNames.CLR_InPlaceBitwiseAnd ||
                method.Name == SpecialNames.CLR_InPlaceExclusiveOr ||
                method.Name == SpecialNames.CLR_InPlaceBitwiseOr ||
                method.Name == SpecialNames.CLR_InPlaceLShift ||
                method.Name == SpecialNames.CLR_InPlaceRShift ||

                // Unary Operators
                method.Name == SpecialNames.CLR_UnaryNegation ||
                method.Name == SpecialNames.CLR_UnaryPlus ||
                method.Name == SpecialNames.CLR_OnesComplement ||
                method.Name == SpecialNames.CLR_True ||
                method.Name == SpecialNames.CLR_False ||

                method.Name == SpecialNames.CLR_PreIncrement ||
                method.Name == SpecialNames.CLR_PostIncrement ||
                method.Name == SpecialNames.CLR_PreDecrement ||
                method.Name == SpecialNames.CLR_PostDecrement);
        }
        #endregion