Expression.MemberInit 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
새 개체를 만들고 개체의 속성을 초기화하는 식을 나타냅니다.
오버로드
MemberInit(NewExpression, IEnumerable<MemberBinding>) |
새 개체를 만들고 개체의 속성을 초기화하는 식을 나타냅니다. |
MemberInit(NewExpression, MemberBinding[]) |
MemberInitExpression을 만듭니다. |
MemberInit(NewExpression, IEnumerable<MemberBinding>)
- Source:
- MemberInitExpression.cs
- Source:
- MemberInitExpression.cs
- Source:
- MemberInitExpression.cs
새 개체를 만들고 개체의 속성을 초기화하는 식을 나타냅니다.
public:
static System::Linq::Expressions::MemberInitExpression ^ MemberInit(System::Linq::Expressions::NewExpression ^ newExpression, System::Collections::Generic::IEnumerable<System::Linq::Expressions::MemberBinding ^> ^ bindings);
public static System.Linq.Expressions.MemberInitExpression MemberInit (System.Linq.Expressions.NewExpression newExpression, System.Collections.Generic.IEnumerable<System.Linq.Expressions.MemberBinding> bindings);
static member MemberInit : System.Linq.Expressions.NewExpression * seq<System.Linq.Expressions.MemberBinding> -> System.Linq.Expressions.MemberInitExpression
Public Shared Function MemberInit (newExpression As NewExpression, bindings As IEnumerable(Of MemberBinding)) As MemberInitExpression
매개 변수
- newExpression
- NewExpression
NewExpression 속성에 설정할 NewExpression입니다.
- bindings
- IEnumerable<MemberBinding>
IEnumerable<T> 컬렉션을 채우는 데 사용할 MemberBinding 개체가 포함된 Bindings입니다.
반환
MemberInitExpression 속성이 NodeType이고 MemberInit 및 NewExpression 속성이 지정된 값으로 설정된 Bindings입니다.
예외
newExpression
또는 bindings
가 null
인 경우
bindings
에 있는 요소의 Member 속성이 newExpression
.Type이 나타내는 형식의 멤버를 나타내지 않는 경우
예제
다음 예제에서는 새 개체를 만들고 개체의 속성을 초기화하는 식을 보여 줍니다.
// Add the following directive to your file:
// using System.Linq.Expressions;
class TestMemberInitClass
{
public int sample { get; set; }
}
static void MemberInit()
{
// This expression creates a new TestMemberInitClass object
// and assigns 10 to its sample property.
Expression testExpr = Expression.MemberInit(
Expression.New(typeof(TestMemberInitClass)),
new List<MemberBinding>() {
Expression.Bind(typeof(TestMemberInitClass).GetMember("sample")[0], Expression.Constant(10))
}
);
// The following statement first creates an expression tree,
// then compiles it, and then runs it.
var test = Expression.Lambda<Func<TestMemberInitClass>>(testExpr).Compile()();
Console.WriteLine(test.sample);
}
// This code example produces the following output:
//
// 10
' Add the following directive to your file:
' Imports System.Linq.Expressions
Class TestMemberInitClass
Public Property Sample As Integer
End Class
Sub MemberInit()
' This expression creates a new TestMemberInitClass object
' and assigns 10 to its Sample property.
Dim testExpr As Expression = Expression.MemberInit(
Expression.[New](GetType(TestMemberInitClass)),
New List(Of MemberBinding)() From {
Expression.Bind(GetType(TestMemberInitClass).GetMember("Sample")(0), Expression.Constant(10))
}
)
' The following statement first creates an expression tree,
' then compiles it, and then runs it.
Dim test = Expression.Lambda(Of Func(Of TestMemberInitClass))(testExpr).Compile()()
Console.WriteLine(test.Sample)
End Sub
' This code example produces the following output:
'
' 10
설명
Type 결과 MemberInitExpression 의 속성은 의 newExpression
속성과 Type 같습니다.
적용 대상
MemberInit(NewExpression, MemberBinding[])
- Source:
- MemberInitExpression.cs
- Source:
- MemberInitExpression.cs
- Source:
- MemberInitExpression.cs
MemberInitExpression을 만듭니다.
public:
static System::Linq::Expressions::MemberInitExpression ^ MemberInit(System::Linq::Expressions::NewExpression ^ newExpression, ... cli::array <System::Linq::Expressions::MemberBinding ^> ^ bindings);
public static System.Linq.Expressions.MemberInitExpression MemberInit (System.Linq.Expressions.NewExpression newExpression, params System.Linq.Expressions.MemberBinding[] bindings);
static member MemberInit : System.Linq.Expressions.NewExpression * System.Linq.Expressions.MemberBinding[] -> System.Linq.Expressions.MemberInitExpression
Public Shared Function MemberInit (newExpression As NewExpression, ParamArray bindings As MemberBinding()) As MemberInitExpression
매개 변수
- newExpression
- NewExpression
NewExpression 속성에 설정할 NewExpression입니다.
- bindings
- MemberBinding[]
MemberBinding 컬렉션을 채우는 데 사용할 Bindings 개체의 배열입니다.
반환
MemberInitExpression 속성이 NodeType이고 MemberInit 및 NewExpression 속성이 지정된 값으로 설정된 Bindings입니다.
예외
newExpression
또는 bindings
가 null
인 경우
bindings
에 있는 요소의 Member 속성이 newExpression
.Type이 나타내는 형식의 멤버를 나타내지 않는 경우
예제
다음 예제에서는 메서드를 사용하여 MemberInit(NewExpression, MemberBinding[]) 새 개체의 두 멤버의 초기화를 나타내는 을 만드는 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
설명
Type 결과 MemberInitExpression 의 속성은 의 newExpression
속성과 Type 같습니다.
적용 대상
.NET