コード例 #1
0
        public virtual IArgumentConstraint GetArgumentConstraint(ParsedArgumentExpression argument)
        {
            if (IsParamArrayExpression(argument))
            {
                return this.CreateParamArrayConstraint((NewArrayExpression)argument.Expression);
            }

            var isByRefArgument = IsByRefArgument(argument);

            object argumentValue;
            var constraint = this.GetArgumentConstraintFromExpression(argument.Expression, out argumentValue);
            if (isByRefArgument)
            {
                if (IsOutArgument(argument))
                {
                    constraint = new OutArgumentConstraint(argumentValue);
                }
                else
                {
                    constraint = new RefArgumentConstraint(constraint, argumentValue);
                }
            }

            return constraint;
        }
コード例 #2
0
        public virtual IArgumentConstraint GetArgumentConstraint(ParsedArgumentExpression argument)
        {
            if (IsParamArrayExpression(argument))
            {
                return this.CreateParamArrayConstraint((NewArrayExpression)argument.Expression);
            }

            if (IsOutArgument(argument))
            {
                return new OutArgumentConstraint(argument.Value);
            }

            var constraint = this.GetArgumentConstraintFromExpression(argument.Expression);

            if (IsRefArgument(argument))
            {
                constraint = new RefArgumentConstraint(constraint, argument.Value);
            }

            return constraint;
        }