Expression.MemberInit Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili ekspresi yang membuat objek baru dan menginisialisasi properti objek.
Overload
MemberInit(NewExpression, IEnumerable<MemberBinding>) |
Mewakili ekspresi yang membuat objek baru dan menginisialisasi properti objek. |
MemberInit(NewExpression, MemberBinding[]) |
MemberInitExpressionMembuat . |
MemberInit(NewExpression, IEnumerable<MemberBinding>)
- Sumber:
- MemberInitExpression.cs
- Sumber:
- MemberInitExpression.cs
- Sumber:
- MemberInitExpression.cs
Mewakili ekspresi yang membuat objek baru dan menginisialisasi properti objek.
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
A NewExpression untuk mengatur properti yang NewExpression sama dengan.
- bindings
- IEnumerable<MemberBinding>
Yang IEnumerable<T> berisi MemberBinding objek yang akan digunakan untuk mengisi Bindings koleksi.
Mengembalikan
MemberInitExpression yang memiliki NodeType properti yang sama dengan MemberInit dan NewExpression properti dan Bindings diatur ke nilai yang ditentukan.
Pengecualian
newExpression
atau bindings
adalah null
.
Properti Member dari elemen bindings
tidak mewakili anggota dari jenis yang newExpression
. Jenis mewakili.
Contoh
Contoh berikut menunjukkan ekspresi yang membuat objek baru dan menginisialisasi properti objek.
// 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
Keterangan
Properti Type dari yang dihasilkan MemberInitExpression sama dengan Type properti .newExpression
Berlaku untuk
MemberInit(NewExpression, MemberBinding[])
- Sumber:
- MemberInitExpression.cs
- Sumber:
- MemberInitExpression.cs
- Sumber:
- MemberInitExpression.cs
MemberInitExpressionMembuat .
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
A NewExpression untuk mengatur properti yang NewExpression sama dengan.
- bindings
- MemberBinding[]
Array MemberBinding objek yang digunakan untuk mengisi Bindings koleksi.
Mengembalikan
MemberInitExpression yang memiliki NodeType properti yang sama dengan MemberInit dan NewExpression properti dan Bindings diatur ke nilai yang ditentukan.
Pengecualian
newExpression
atau bindings
adalah null
.
Properti Member dari elemen bindings
tidak mewakili anggota dari jenis yang newExpression
. Jenis mewakili.
Contoh
Contoh berikut menunjukkan cara menggunakan MemberInit(NewExpression, MemberBinding[]) metode untuk membuat MemberInitExpression yang mewakili inisialisasi dua anggota objek baru.
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
Keterangan
Properti Type dari yang dihasilkan MemberInitExpression sama dengan Type properti .newExpression