BC36548: Não é possível converter tipo anônimo em uma árvore de expressão porque uma propriedade do tipo é usada para inicializar outra propriedade

O compilador não aceita a conversão de um tipo anônimo em uma árvore de expressão quando uma propriedade do tipo anônimo é usada para inicializar outra propriedade do tipo anônimo. Por exemplo, no código a seguir, Prop1 é declarado na lista de inicialização e, em seguida, usado como o valor inicial para Prop2.

ID do erro: BC36548

Exemplo

Module M2

    Sub ExpressionExample(Of T)(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

Para corrigir este erro

Atribua o valor inicial para Prop1 uma variável local. Atribua essa variável a ambos Prop1 e Prop2, conforme mostrado no código a seguir:

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

Consulte também