Eine Konvertierung des anonymen Typs in eine Ausdrucksbaumstruktur ist nicht möglich, da sie ein Feld enthält, das in der Initialisierung eines anderen Feldes verwendet wird

Aktualisiert: November 2007

Cannot convert anonymous type to expression tree because it contains a field that is used in the initialization of another field

Der Compiler lässt keine Konvertierung eines anonymen Typs in eine Ausdrucksbaumstruktur zu, wenn eine Eigenschaft des anonymen Typs zur Initialisierung einer anderen Eigenschaft des anonymen Typs verwendet wird. Im folgenden Code wird Prop1 beispielsweise in der Initialisierungsliste deklariert und dann als Anfangswert für Prop2 verwendet.

Module M2

    Sub ExpressionExample(Of T)(ByVal x As Expressions.Expression(Of Func(Of T)))
    End Sub

    Sub Main()
        ' The following line causes the error.
        ' ExpressionExample(Function() New With {.Prop1 = 2, .Prop2 = .Prop1})

    End Sub
End Module

Fehler-ID: BC36548

So beheben Sie diesen Fehler

  • Weisen Sie einer lokalen Variable den Anfangswert für Prop1 zu. Weisen Sie diese Variable Prop1 und Prop2 zu, wie im folgenden Code dargestellt.

    Sub Main()
    
        Dim temp = 2
        ExpressionExample(Function() New With {.Prop1 = temp, .Prop2 = temp})
    
    End Sub
    

Siehe auch

Aufgaben

Gewusst wie: Verwenden von Ausdrucksbaumstrukturen zum Erstellen dynamischer Abfragen

Konzepte

Anonyme Typen

Ausdrucksbaumstrukturen in LINQ