Expression.MemberInit Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen Ausdruck dar, der ein neues Objekt erstellt und eine Eigenschaft des Objekts initialisiert.
Überlädt
MemberInit(NewExpression, IEnumerable<MemberBinding>) |
Stellt einen Ausdruck dar, der ein neues Objekt erstellt und eine Eigenschaft des Objekts initialisiert. |
MemberInit(NewExpression, MemberBinding[]) |
Erstellt eine MemberInitExpression. |
MemberInit(NewExpression, IEnumerable<MemberBinding>)
- Quelle:
- MemberInitExpression.cs
- Quelle:
- MemberInitExpression.cs
- Quelle:
- MemberInitExpression.cs
Stellt einen Ausdruck dar, der ein neues Objekt erstellt und eine Eigenschaft des Objekts initialisiert.
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
Parameter
- newExpression
- NewExpression
Ein NewExpression, auf das die NewExpression-Eigenschaft festgelegt werden soll.
- bindings
- IEnumerable<MemberBinding>
Ein IEnumerable<T>, das MemberBinding-Objekte enthält, mit denen die Bindings-Auflistung aufgefüllt werden soll.
Gibt zurück
Ein MemberInitExpression, bei dem die NodeType-Eigenschaft gleich MemberInit ist und die NewExpression-Eigenschaft sowie die Bindings-Eigenschaft auf die angegebenen Werte festgelegt sind.
Ausnahmen
newExpression
oder bindings
ist null
.
Die Member-Eigenschaft eines Elements von bindings
stellt keinen Member dar, der den durch newExpression
.Type dargestellten Typ aufweist.
Beispiele
Das folgende Beispiel veranschaulicht einen Ausdruck, der ein neues -Objekt erstellt und eine -Eigenschaft des -Objekts initialisiert.
// 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
Hinweise
Die Type -Eigenschaft des resultierenden MemberInitExpression ist gleich der Type -Eigenschaft von newExpression
.
Gilt für:
MemberInit(NewExpression, MemberBinding[])
- Quelle:
- MemberInitExpression.cs
- Quelle:
- MemberInitExpression.cs
- Quelle:
- MemberInitExpression.cs
Erstellt eine 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
Parameter
- newExpression
- NewExpression
Ein NewExpression, auf das die NewExpression-Eigenschaft festgelegt werden soll.
- bindings
- MemberBinding[]
Ein Array von MemberBinding-Objekten, mit denen die Bindings-Auflistung aufgefüllt wird.
Gibt zurück
Ein MemberInitExpression, bei dem die NodeType-Eigenschaft gleich MemberInit ist und die NewExpression-Eigenschaft sowie die Bindings-Eigenschaft auf die angegebenen Werte festgelegt sind.
Ausnahmen
newExpression
oder bindings
ist null
.
Die Member-Eigenschaft eines Elements von bindings
stellt keinen Member dar, der den durch newExpression
.Type dargestellten Typ aufweist.
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie die MemberInit(NewExpression, MemberBinding[]) -Methode verwendet wird, um eine MemberInitExpression zu erstellen, die die Initialisierung von zwei Membern eines neuen Objekts darstellt.
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
Hinweise
Die Type -Eigenschaft des resultierenden MemberInitExpression ist gleich der Type -Eigenschaft von newExpression
.