Expression.Negate 메서드

정의

산술 부정 연산을 나타내는 UnaryExpression을 만듭니다.

오버로드

Negate(Expression, MethodInfo)

산술 부정 연산을 나타내는 UnaryExpression을 만듭니다.

Negate(Expression)

산술 부정 연산을 나타내는 UnaryExpression을 만듭니다.

Negate(Expression, MethodInfo)

산술 부정 연산을 나타내는 UnaryExpression을 만듭니다.

public:
 static System::Linq::Expressions::UnaryExpression ^ Negate(System::Linq::Expressions::Expression ^ expression, System::Reflection::MethodInfo ^ method);
public static System.Linq.Expressions.UnaryExpression Negate (System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo method);
public static System.Linq.Expressions.UnaryExpression Negate (System.Linq.Expressions.Expression expression, System.Reflection.MethodInfo? method);
static member Negate : System.Linq.Expressions.Expression * System.Reflection.MethodInfo -> System.Linq.Expressions.UnaryExpression
Public Shared Function Negate (expression As Expression, method As MethodInfo) As UnaryExpression

매개 변수

expression
Expression

Expression 속성에 설정할 Operand입니다.

method
MethodInfo

MethodInfo 속성에 설정할 Method입니다.

반환

UnaryExpression

UnaryExpression 속성이 NodeType이고 NegateOperand 속성이 지정된 값으로 설정된 Method입니다.

예외

expression이(가) null인 경우

methodnull이 아니고 이것이 나타내는 메서드가 void를 반환하거나, static(Visual Basic의 경우 Shared)이 아니거나, 정확하게 하나의 인수를 사용하지 않는 경우

methodnull이고 expression.Type에 단항 빼기 연산자가 정의되지 않은 경우

또는 expression.Type 또는 이 형식이 nullable 값 형식인 경우 nullable이 아닌 해당 형식을 method가 나타내는 메서드의 인수 형식에 할당할 수 없는 경우

설명

Method 결과 UnaryExpression 속성은 구현 메서드로 설정됩니다. 속성 Type 은 노드의 형식으로 설정됩니다. 노드가 해제되면 IsLifted 속성과 IsLiftedToNull 속성이 둘 다 true있습니다. 그렇지 않으면 false입니다.

구현 방법

다음 규칙은 작업에 대한 구현 방법을 결정합니다.

  • 그렇지 않고 null 하나의 인수를 사용하는 비 void, static (SharedVisual Basic) 메서드를 나타내는 경우 method 노드에 대한 구현 메서드입니다.

  • If expression. 형식은 단항 빼기 연산자를 정의하는 사용자 정의 형식으로, MethodInfo 해당 연산자가 구현 메서드임을 나타냅니다.

  • 그렇지 않으면 .이고, 그렇지 않으면 expression 형식은 숫자 형식이고 구현 메서드는 .입니다 null.

노드 유형 및 해제됨 및 해제되지 않은 노드

구현 메서드가 아닌 null경우:

  • If expression. 형식은 구현 메서드의 인수 형식에 할당할 수 있으며 노드는 해제되지 않습니다. 노드의 형식은 구현 메서드의 반환 형식입니다.

  • 다음 두 조건이 충족되면 노드가 해제되고 노드의 형식은 구현 메서드의 반환 형식에 해당하는 nullable 형식입니다.

    • expression. 형식은 nullable 값 형식이며 nullable이 아닌 해당 값 형식은 구현 메서드의 인수 형식과 같습니다.

    • 구현 메서드의 반환 형식은 nullable이 아닌 값 형식입니다.

구현 메서드가 null있는 경우 노드의 형식은 .입니다 expression. 형식. If expression. 형식이 nullable이 아니고 노드가 해제되지 않습니다. 그렇지 않으면 노드가 해제됩니다.

적용 대상

Negate(Expression)

산술 부정 연산을 나타내는 UnaryExpression을 만듭니다.

public:
 static System::Linq::Expressions::UnaryExpression ^ Negate(System::Linq::Expressions::Expression ^ expression);
public static System.Linq.Expressions.UnaryExpression Negate (System.Linq.Expressions.Expression expression);
static member Negate : System.Linq.Expressions.Expression -> System.Linq.Expressions.UnaryExpression
Public Shared Function Negate (expression As Expression) As UnaryExpression

매개 변수

expression
Expression

Expression 속성에 설정할 Operand입니다.

반환

UnaryExpression

UnaryExpression 속성이 NodeType이고 Negate 속성이 지정된 값으로 설정된 Operand입니다.

예외

expression이(가) null인 경우

expression.Type에 단항 빼기 연산자가 정의되지 않은 경우

예제

다음 예제에서는 산술 부정 연산을 나타내는 식을 만드는 방법을 보여 줍니다.

// Add the following directive to your file:
// using System.Linq.Expressions;

// This expression represents a negation operation.
Expression negateExpr = Expression.Negate(Expression.Constant(5));

// The following statement first creates an expression tree,
// then compiles it, and then runs it.
Console.WriteLine(Expression.Lambda<Func<int>>(negateExpr).Compile()());

// This code example produces the following output:
//
// -5
' Add the following directive to your file:
' Imports System.Linq.Expressions 

' This expression represents a negation operation.
Dim negateExpr As Expression = Expression.Negate(Expression.Constant(5))

' The following statement first creates an expression tree,
' then compiles it, and then runs it.
Console.WriteLine(Expression.Lambda(Of Func(Of Integer))(negateExpr).Compile()())

' This code example produces the following output:
'
' -5

설명

Method 결과 UnaryExpression 속성은 구현 메서드로 설정됩니다. 속성은 Type 노드의 형식으로 설정됩니다. 노드가 해제되면 속성과 IsLiftedToNull 속성은 IsLifted 모두 true.입니다. 그렇지 않으면 false입니다.

구현 방법

다음 규칙은 작업에 대한 구현 방법을 결정합니다.

  • If expression. 형식은 단항 빼기 연산자를 정의하는 사용자 정의 형식으로, MethodInfo 해당 연산자가 구현 메서드임을 나타냅니다.

  • 그렇지 않으면 .이고, 그렇지 않으면 expression 형식은 숫자 형식이고 구현 메서드는 .입니다 null.

노드 유형 및 해제됨 및 해제되지 않은 노드

구현 메서드가 아닌 null경우:

  • If expression. 형식은 구현 메서드의 인수 형식에 할당할 수 있으며 노드는 해제되지 않습니다. 노드의 형식은 구현 메서드의 반환 형식입니다.

  • 다음 두 조건이 충족되면 노드가 해제되고 노드의 형식은 구현 메서드의 반환 형식에 해당하는 nullable 형식입니다.

    • expression. 형식은 nullable 값 형식이며 nullable이 아닌 해당 값 형식은 구현 메서드의 인수 형식과 같습니다.

    • 구현 메서드의 반환 형식은 nullable이 아닌 값 형식입니다.

구현 메서드가 null있는 경우 노드의 형식은 .입니다 expression. 형식. If expression. 형식이 nullable이 아니고 노드가 해제되지 않습니다. 그렇지 않으면 노드가 해제됩니다.

적용 대상