Expression.MemberInit Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje výraz, který vytvoří nový objekt a inicializuje vlastnost objektu.
Přetížení
MemberInit(NewExpression, IEnumerable<MemberBinding>) |
Představuje výraz, který vytvoří nový objekt a inicializuje vlastnost objektu. |
MemberInit(NewExpression, MemberBinding[]) |
Vytvoří .MemberInitExpression |
MemberInit(NewExpression, IEnumerable<MemberBinding>)
- Zdroj:
- MemberInitExpression.cs
- Zdroj:
- MemberInitExpression.cs
- Zdroj:
- MemberInitExpression.cs
Představuje výraz, který vytvoří nový objekt a inicializuje vlastnost objektu.
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
Parametry
- newExpression
- NewExpression
A NewExpression , aby se vlastnost nastavil NewExpression na hodnotu rovna.
- bindings
- IEnumerable<MemberBinding>
Objekt IEnumerable<T> obsahující objekty, které MemberBinding se mají použít k naplnění Bindings kolekce.
Návraty
Vlastnost MemberInitExpression a, která má NodeType vlastnost rovna MemberInit a NewExpression vlastnosti a Bindings nastavené na zadané hodnoty.
Výjimky
newExpression
nebo bindings
je null
.
Vlastnost Member elementu bindings
z nepředstavuje člena typu , který newExpression
. Typ představuje.
Příklady
Následující příklad ukazuje výraz, který vytvoří nový objekt a inicializuje vlastnost objektu.
// 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
Poznámky
Vlastnost Type výsledného MemberInitExpression objektu se Type rovná vlastnosti newExpression
.
Platí pro
MemberInit(NewExpression, MemberBinding[])
- Zdroj:
- MemberInitExpression.cs
- Zdroj:
- MemberInitExpression.cs
- Zdroj:
- MemberInitExpression.cs
Vytvoří .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
Parametry
- newExpression
- NewExpression
A NewExpression , aby se vlastnost nastavil NewExpression na hodnotu rovna.
- bindings
- MemberBinding[]
Pole MemberBinding objektů, které se mají použít k naplnění Bindings kolekce.
Návraty
Vlastnost MemberInitExpression a, která má NodeType vlastnost rovna MemberInit a NewExpression vlastnosti a Bindings nastavené na zadané hodnoty.
Výjimky
newExpression
nebo bindings
je null
.
Vlastnost Member elementu bindings
z nepředstavuje člena typu , který newExpression
. Typ představuje.
Příklady
Následující příklad ukazuje, jak použít metodu MemberInit(NewExpression, MemberBinding[]) k vytvoření MemberInitExpression , který představuje inicializaci dvou členů nového objektu.
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
Poznámky
Vlastnost Type výsledného MemberInitExpression objektu se Type rovná vlastnosti newExpression
.