public BindBinaryOperation ( |
||
binder | An instance of the |
|
arg | An instance of the |
|
리턴 |
/// <summary> /// Performs the binding of the dynamic binary operation. /// </summary> /// <param name="target">The target of the dynamic operation.</param> /// <param name="args">An array of arguments of the dynamic operation.</param> /// <returns>The <see cref="DynamicMetaObject"/> representing the result of the binding.</returns> public sealed override DynamicMetaObject Bind(DynamicMetaObject target, DynamicMetaObject[] args) { ContractUtils.RequiresNotNull(target, "target"); ContractUtils.RequiresNotNullItems(args, "args"); ContractUtils.Requires(args.Length == 1); return target.BindBinaryOperation(this, args[0]); }
public sealed override DynamicMetaObject Bind(DynamicMetaObject target, DynamicMetaObject[] args) { ContractUtils.RequiresNotNull(target, "target"); ContractUtils.RequiresNotNull(args, "args"); ContractUtils.Requires(args.Length == 1, "args"); DynamicMetaObject obj2 = args[0]; ContractUtils.RequiresNotNull(obj2, "args"); return(target.BindBinaryOperation(this, obj2)); }
/// <summary> /// Performs the binding of the dynamic binary operation. /// </summary> /// <param name="target">The target of the dynamic operation.</param> /// <param name="args">An array of arguments of the dynamic operation.</param> /// <returns>The <see cref="DynamicMetaObject"/> representing the result of the binding.</returns> public sealed override DynamicMetaObject Bind(DynamicMetaObject target, DynamicMetaObject[] args) { ContractUtils.RequiresNotNull(target, nameof(target)); ContractUtils.RequiresNotNull(args, nameof(args)); ContractUtils.Requires(args.Length == 1, nameof(args)); var arg0 = args[0]; ContractUtils.RequiresNotNull(arg0, nameof(args)); return target.BindBinaryOperation(this, arg0); }
/// <summary> /// Performs the binding of the dynamic binary operation. /// </summary> /// <param name="target">The target of the dynamic operation.</param> /// <param name="args">An array of arguments of the dynamic operation.</param> /// <returns>The <see cref="DynamicMetaObject"/> representing the result of the binding.</returns> public sealed override DynamicMetaObject Bind(DynamicMetaObject target, DynamicMetaObject[] args) { ArgumentNullException.ThrowIfNull(target); ArgumentNullException.ThrowIfNull(args); ContractUtils.Requires(args.Length == 1, nameof(args)); var arg0 = args[0]; ArgumentNullException.ThrowIfNull(arg0, nameof(args)); return(target.BindBinaryOperation(this, arg0)); }
/// <summary> /// Performs the binding of the dynamic binary operation. /// </summary> /// <param name="target">The target of the dynamic operation.</param> /// <param name="args">An array of arguments of the dynamic operation.</param> /// <returns>The <see cref="DynamicMetaObject"/> representing the result of the binding.</returns> public sealed override DynamicMetaObject Bind(DynamicMetaObject target, DynamicMetaObject[] args) { ContractUtils.RequiresNotNull(target, nameof(target)); ContractUtils.RequiresNotNull(args, nameof(args)); ContractUtils.Requires(args.Length == 1, nameof(args)); var arg0 = args[0]; ContractUtils.RequiresNotNull(arg0, nameof(args)); return(target.BindBinaryOperation(this, arg0)); }
public static void TestMetaObject(DynamicMetaObject target, DynamicMetaObject arg, ExpressionType[] testExpressions, bool isValid = true) { foreach (ExpressionType expType in testExpressions) { BinaryOperationBinder binder = new TestBinaryOperationBinder(expType); DynamicMetaObject result = target.BindBinaryOperation(binder, arg); Assert.IsNotNull(result); //The resulting expression is a convert expression, that's why we are checking for unary expression here. UnaryExpression expression = result.Expression as UnaryExpression; Assert.IsNotNull(expression); // The operand expression is supposed to be a binary expression. ExpressionType expectedType = isValid ? expType : ExpressionType.Throw; Assert.AreEqual<ExpressionType>(expectedType, expression.Operand.NodeType); } }
public static void TestBindParams(DynamicMetaObject target, DynamicMetaObject arg) { BinaryOperationBinder binder = new TestBinaryOperationBinder(ExpressionType.Equal); ExceptionTestHelper.ExpectException<ArgumentNullException>(() => { var result = target.BindBinaryOperation(null, arg); }); ExceptionTestHelper.ExpectException<ArgumentNullException>(() => { var result = target.BindBinaryOperation(binder, null); }); }