이 설명서는 보관되지만 유지 되지 않습니다.

Expression.LeftShift 메서드 (Expression, Expression, MethodInfo)

업데이트: 2007년 11월

비트 왼쪽 시프트 연산을 나타내는 BinaryExpression을 만듭니다. 구현 메서드를 지정할 수 있습니다.

네임스페이스:  System.Linq.Expressions
어셈블리:  System.Core(System.Core.dll)

public static BinaryExpression LeftShift(
	Expression left,
	Expression right,
	MethodInfo method
)
public static BinaryExpression LeftShift(
	Expression left,
	Expression right,
	MethodInfo method
)
public static function LeftShift(
	left : Expression, 
	right : Expression, 
	method : MethodInfo
) : BinaryExpression

매개 변수

left
형식: System.Linq.Expressions.Expression

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

right
형식: System.Linq.Expressions.Expression

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

method
형식: System.Reflection.MethodInfo

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

반환 값

형식: System.Linq.Expressions.BinaryExpression

NodeType 속성이 LeftShift이고 Left, RightMethod 속성이 지정된 값으로 설정된 BinaryExpression입니다.

예외상황
ArgumentNullException

left 또는 rightnull인 경우

ArgumentException

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

InvalidOperationException

methodnull이고 left.Type 및 right.Type에 왼쪽 시프트 연산자가 정의되지 않은 경우

결과 BinaryExpressionMethod 속성은 구현 메서드로 설정됩니다. Type 속성이 노드의 형식으로 설정됩니다. 노드가 리프트된 경우 IsLiftedIsLiftedToNull 속성은 모두 true입니다. 그렇지 않으면 false입니다. Conversion 속성은 null입니다.

다음 정보는 구현 메서드, 노드 형식 및 노드의 리프트 여부를 설명합니다.

구현 메서드

다음 규칙에 따라 연산에 대해 선택되는 구현 메서드가 결정됩니다.

  • methodnull이 아니고 두 개의 인수를 사용하는 void를 반환하지 않는 static(Visual Basic의 경우 Shared) 메서드를 나타내는 경우 이것은 노드에 대한 구현 메서드입니다.

  • 그렇지 않고 left 또는 rightType 속성이 왼쪽 시프트 연산자를 오버로드하는 사용자 정의 형식을 나타내면 해당 메서드를 나타내는 MethodInfo가 구현 메서드가 됩니다.

  • 그렇지 않고 left.Type이 정수 계열 형식(Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64 또는 해당 nullable 형식 중 하나)이고 right.Type이 Int32이면 구현 메서드가 null입니다.

노드 형식 및 리프트되는 노드와 리프트되지 않는 노드 비교

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

  • 구현 메서드의 해당 인수 형식에 left.Type 및 right.Type을 할당할 수 있는 경우 노드는 리프트되지 않습니다. 노드의 형식은 구현 메서드의 반환 형식입니다.

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

    • left.Type 및 right.Type 모두가 적어도 하나는 nullable 값 형식이며 그에 상응하는 nullable이 아닌 형식이 구현 메서드의 해당 인수 형식과 동일합니다.

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

구현 메서드가 null인 경우

  • left.Type 및 right.Type 모두가 nullable이 아닌 경우 노드는 리프트되지 않습니다. 노드의 형식은 미리 정의된 왼쪽 시프트 연산자의 결과 형식입니다.

  • left.Type 및 right.Type 모두가 nullable인 경우 노드는 리프트됩니다. 노드의 형식은 미리 정의된 왼쪽 시프트 연산자의 결과 형식에 해당하는 nullable 형식입니다.

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

.NET Framework

3.5에서 지원
표시: