Expression.MemberInit Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Yeni bir nesne oluşturan ve nesnenin bir özelliğini başlatan bir ifadeyi temsil eder.
Aşırı Yüklemeler
MemberInit(NewExpression, IEnumerable<MemberBinding>) |
Yeni bir nesne oluşturan ve nesnenin bir özelliğini başlatan bir ifadeyi temsil eder. |
MemberInit(NewExpression, MemberBinding[]) |
bir MemberInitExpressionoluşturur. |
MemberInit(NewExpression, IEnumerable<MemberBinding>)
- Kaynak:
- MemberInitExpression.cs
- Kaynak:
- MemberInitExpression.cs
- Kaynak:
- MemberInitExpression.cs
Yeni bir nesne oluşturan ve nesnenin bir özelliğini başlatan bir ifadeyi temsil eder.
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
Parametreler
- newExpression
- NewExpression
Özelliğinin NewExpression değerine eşit olarak ayarlanması için ANewExpression.
- bindings
- IEnumerable<MemberBinding>
IEnumerable<T> Koleksiyonu doldurmak Bindings için kullanılacak nesneleri içerenMemberBinding.
Döndürülenler
MemberInitExpression özelliğine MemberInitNodeType eşit olan ve ve BindingsNewExpression özellikleri belirtilen değerlere ayarlanmış bir.
Özel durumlar
newExpression
veya bindings
şeklindedir null
.
Member öğesinin bindings
özelliği, türündeki newExpression
bir üyeyi temsil etmez. Tür temsil eder.
Örnekler
Aşağıdaki örnek, yeni bir nesne oluşturan ve nesnenin bir özelliğini başlatan bir ifadeyi gösterir.
// 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
Açıklamalar
Sonuçta TypeMemberInitExpression elde edilen özelliği özelliğine TypenewExpression
eşittir.
Şunlara uygulanır
MemberInit(NewExpression, MemberBinding[])
- Kaynak:
- MemberInitExpression.cs
- Kaynak:
- MemberInitExpression.cs
- Kaynak:
- MemberInitExpression.cs
bir MemberInitExpressionoluşturur.
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
Parametreler
- newExpression
- NewExpression
Özelliğinin NewExpression değerine eşit olarak ayarlanması için ANewExpression.
- bindings
- MemberBinding[]
Koleksiyonu doldurmak Bindings için kullanılacak nesne dizisiMemberBinding.
Döndürülenler
MemberInitExpression özelliğine MemberInitNodeType eşit olan ve ve BindingsNewExpression özellikleri belirtilen değerlere ayarlanmış bir.
Özel durumlar
newExpression
veya bindings
şeklindedir null
.
Member öğesinin bindings
özelliği, türündeki newExpression
bir üyeyi temsil etmez. Tür temsil eder.
Örnekler
Aşağıdaki örnek, yeni bir nesnenin iki üyesinin MemberInit(NewExpression, MemberBinding[]) başlatılmasını temsil eden bir MemberInitExpression oluşturmak için yönteminin nasıl kullanılacağını gösterir.
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
Açıklamalar
Sonuçta TypeMemberInitExpression elde edilen özelliği özelliğine TypenewExpression
eşittir.