MemberInitExpression 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
생성자를 호출하고 새 개체의 멤버를 하나 이상 초기화하는 동작을 나타냅니다.
public ref class MemberInitExpression sealed : System::Linq::Expressions::Expression
public sealed class MemberInitExpression : System.Linq.Expressions.Expression
type MemberInitExpression = class
inherit Expression
Public NotInheritable Class MemberInitExpression
Inherits Expression
- 상속
예제
다음 예제에서는 새 개체의 두 멤버 초기화를 나타내는 을 만듭니다 MemberInitExpression .
class Animal
{
public string Species {get; set;}
public int Age {get; set;}
}
public static void CreateMemberInitExpression()
{
System.Linq.Expressions.NewExpression newAnimal =
System.Linq.Expressions.Expression.New(typeof(Animal));
System.Reflection.MemberInfo speciesMember =
typeof(Animal).GetMember("Species")[0];
System.Reflection.MemberInfo ageMember =
typeof(Animal).GetMember("Age")[0];
// Create a MemberBinding object for each member
// that you want to initialize.
System.Linq.Expressions.MemberBinding speciesMemberBinding =
System.Linq.Expressions.Expression.Bind(
speciesMember,
System.Linq.Expressions.Expression.Constant("horse"));
System.Linq.Expressions.MemberBinding ageMemberBinding =
System.Linq.Expressions.Expression.Bind(
ageMember,
System.Linq.Expressions.Expression.Constant(12));
// Create a MemberInitExpression that represents initializing
// two members of the 'Animal' class.
System.Linq.Expressions.MemberInitExpression memberInitExpression =
System.Linq.Expressions.Expression.MemberInit(
newAnimal,
speciesMemberBinding,
ageMemberBinding);
Console.WriteLine(memberInitExpression.ToString());
// This code produces the following output:
//
// new Animal() {Species = "horse", Age = 12}
}
Class Animal
Public Species As String
Public Age As Integer
End Class
Shared Sub CreateMemberInitExpression()
Dim newAnimal As System.Linq.Expressions.NewExpression = _
System.Linq.Expressions.Expression.[New](Type.GetType("ExpressionVB.MemberInitExample+Animal"))
Dim speciesMember As System.Reflection.MemberInfo = _
Type.GetType("ExpressionVB.MemberInitExample+Animal").GetMember("Species")(0)
Dim ageMember As System.Reflection.MemberInfo = _
Type.GetType("ExpressionVB.MemberInitExample+Animal").GetMember("Age")(0)
' Create a MemberBinding object for each member
' that you want to initialize.
Dim speciesMemberBinding As System.Linq.Expressions.MemberBinding = _
System.Linq.Expressions.Expression.Bind( _
speciesMember, _
System.Linq.Expressions.Expression.Constant("horse"))
Dim ageMemberBinding As System.Linq.Expressions.MemberBinding = _
System.Linq.Expressions.Expression.Bind( _
ageMember, _
System.Linq.Expressions.Expression.Constant(12))
' Create a MemberInitExpression that represents initializing
' two members of the 'Animal' class.
Dim memberInitExpression As System.Linq.Expressions.MemberInitExpression = _
System.Linq.Expressions.Expression.MemberInit( _
newAnimal, _
speciesMemberBinding, _
ageMemberBinding)
Console.WriteLine(memberInitExpression.ToString())
' This code produces the following output:
'
' new Animal() {Species = "horse", Age = 12}
End Sub
설명
사용 된 MemberInit 를 만드는 팩터리 메서드가 MemberInitExpression합니다.
값을 NodeType 의 속성을 MemberInitExpression 는 MemberInit합니다.
속성
Bindings |
새로 만든 개체의 멤버를 초기화하는 방법을 설명하는 바인딩을 가져옵니다. |
CanReduce |
식 트리 노드를 줄일 수 있는지 여부를 나타내는 값을 가져옵니다. |
CanReduce |
노드를 더 단순한 노드로 줄일 수 있는지 나타냅니다. true를 반환하면 Reduce()를 호출하여 축소된 형식을 만들 수 있습니다. (다음에서 상속됨 Expression) |
NewExpression |
생성자 호출을 나타내는 식을 가져옵니다. |
NodeType |
이 식의 노드 형식을 반환합니다. 확장 노드는 이 메서드를 재정의할 때 Extension을 반환해야 합니다. |
NodeType |
이 Expression의 노드 형식을 가져옵니다. (다음에서 상속됨 Expression) |
Type |
이 Expression이 나타내는 식의 정적 형식을 가져옵니다. |
Type |
이 Expression이 나타내는 식의 정적 형식을 가져옵니다. (다음에서 상속됨 Expression) |
메서드
Accept(ExpressionVisitor) |
이 노드 형식에 대한 특정 Visit 메서드로 디스패치합니다. 예를 들어 MethodCallExpression은 VisitMethodCall(MethodCallExpression)을 호출합니다. (다음에서 상속됨 Expression) |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
Reduce() |
MemberInitExpression을 더 단순한 식으로 줄입니다. |
Reduce() |
이 노드를 더 단순한 식으로 줄입니다. CanReduce가 true를 반환하면 유효한 식을 반환합니다. 이 메서드는 자체를 줄여야 하는 다른 노드를 반환할 수 있습니다. (다음에서 상속됨 Expression) |
ReduceAndCheck() |
이 노드를 더 단순한 식으로 줄입니다. CanReduce가 true를 반환하면 유효한 식을 반환합니다. 이 메서드는 자체를 줄여야 하는 다른 노드를 반환할 수 있습니다. (다음에서 상속됨 Expression) |
ReduceExtensions() |
알려진 노드 형식(확장 노드가 아님)으로 식을 줄이거나 이미 알려진 형식인 경우 식을 반환합니다. (다음에서 상속됨 Expression) |
ToString() |
Expression의 텍스트 표현을 반환합니다. (다음에서 상속됨 Expression) |
Update(NewExpression, IEnumerable<MemberBinding>) |
제공된 자식을 사용하여 이 식과 같은 새 식을 만듭니다. 모든 자식이 같으면 이 식을 반환합니다. |
VisitChildren(ExpressionVisitor) |
노드를 줄인 다음 줄인 식에서 방문자 대리자를 호출합니다. 이 메서드는 노드를 줄일 수 없으면 예외를 throw합니다. (다음에서 상속됨 Expression) |
적용 대상
.NET