MemberInitExpression Sınıf
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.
Oluşturucu çağırmayı ve yeni nesnenin bir veya daha fazla üyesini başlatmayı temsil eder.
public ref class MemberInitExpression sealed : System::Linq::Expressions::Expression
public sealed class MemberInitExpression : System.Linq.Expressions.Expression
type MemberInitExpression = class
inherit Expression
Public NotInheritable Class MemberInitExpression
Inherits Expression
- Devralma
Örnekler
Aşağıdaki örnek, yeni bir MemberInitExpression nesnenin iki üyesinin başlatılmasını temsil eden bir oluşturur.
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
MemberInit Oluşturmak MemberInitExpressioniçin fabrika yöntemlerini kullanın.
özelliğinin NodeTypeMemberInitExpression değeridir MemberInit.
Özellikler
| Name | Description |
|---|---|
| Bindings |
Yeni oluşturulan nesnenin üyelerinin nasıl başlatıldığını açıklayan bağlamaları alır. |
| CanReduce |
İfade ağacı düğümünü azaltılıp azaltılamayacağını gösteren bir değer alır. |
| NewExpression |
Oluşturucu çağrısını temsil eden ifadeyi alır. |
| NodeType |
Bu İfadenin düğüm türünü döndürür. Bu yöntem geçersiz kılınırken uzantı düğümleri döndürülmelidir Extension . |
| NodeType |
Bu Expressiondüğüm türünü alır. (Devralındığı yer: Expression) |
| Type |
Bunun Expression temsil ettiği ifadenin statik türünü alır. |
| Type |
Bunun Expression temsil ettiği ifadenin statik türünü alır. (Devralındığı yer: Expression) |
Yöntemler
| Name | Description |
|---|---|
| Accept(ExpressionVisitor) |
Bu düğüm türü için belirli bir ziyaret yöntemine gönderilir. Örneğin, MethodCallExpression öğesini çağırır VisitMethodCall(MethodCallExpression). (Devralındığı yer: Expression) |
| Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
| GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
| GetType() |
Geçerli örneğin Type alır. (Devralındığı yer: Object) |
| MemberwiseClone() |
Geçerli Objectbasit bir kopyasını oluşturur. (Devralındığı yer: Object) |
| Reduce() |
daha basit bir ifadeye küçültür MemberInitExpression . |
| ReduceAndCheck() |
Bu düğümü daha basit bir ifadeye küçültür. CanReduce true döndürürse, bu geçerli bir ifade döndürmelidir. Bu yöntem, azaltması gereken başka bir düğüm döndürebilir. (Devralındığı yer: Expression) |
| ReduceExtensions() |
İfadeyi bilinen bir düğüm türüne (Uzantı düğümü değildir) küçültür veya zaten bilinen bir türse yalnızca ifadeyi döndürür. (Devralındığı yer: Expression) |
| ToString() |
öğesinin metinsel gösterimini Expressiondöndürür. (Devralındığı yer: Expression) |
| Update(NewExpression, IEnumerable<MemberBinding>) |
Bunun gibi, ancak sağlanan alt öğeleri kullanarak yeni bir ifade oluşturur. Tüm alt öğeler aynıysa, bu ifadeyi döndürür. |
| VisitChildren(ExpressionVisitor) |
Düğümü azaltır ve ardından azaltılmış ifadede ziyaretçi temsilcisini çağırır. Yöntem, düğüm azaltılabilir değilse bir özel durum oluşturur. (Devralındığı yer: Expression) |