System.Linq.Expressions.Error.UserDefinedOpMustHaveValidReturnType C# (CSharp) Метод

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

ArgumentException with message like "The user-defined operator method '{1}' for operator '{0}' must return the same type as its parameter or a derived type."
static private UserDefinedOpMustHaveValidReturnType ( object p0, object p1 ) : Exception
p0 object
p1 object
Результат Exception
        internal static Exception UserDefinedOpMustHaveValidReturnType(object p0, object p1)
        {
            return new ArgumentException(Strings.UserDefinedOpMustHaveValidReturnType(p0, p1));
        }
        /// <summary>

Usage Example

Пример #1
0
        private static UnaryExpression MakeOpAssignUnary(ExpressionType kind, Expression expression, MethodInfo method)
        {
            RequiresCanRead(expression, "expression");
            RequiresCanWrite(expression, "expression");

            UnaryExpression result;

            if (method == null)
            {
                if (TypeUtils.IsArithmetic(expression.Type))
                {
                    return(new UnaryExpression(kind, expression, expression.Type, null));
                }
                string name;
                if (kind == ExpressionType.PreIncrementAssign || kind == ExpressionType.PostIncrementAssign)
                {
                    name = "op_Increment";
                }
                else
                {
                    name = "op_Decrement";
                }
                result = GetUserDefinedUnaryOperatorOrThrow(kind, name, expression);
            }
            else
            {
                result = GetMethodBasedUnaryOperator(kind, expression, method);
            }
            // return type must be assignable back to the operand type
            if (!TypeUtils.AreReferenceAssignable(expression.Type, result.Type))
            {
                throw Error.UserDefinedOpMustHaveValidReturnType(kind, method.Name);
            }
            return(result);
        }
Error