BC36548:无法将匿名类型转换为表达式树,因为此类型的属性用于初始化其他属性

当使用匿名类型的一个属性来初始化匿名类型的其他属性时,编译器不接受将匿名类型转换为表达式树。 例如,在下面的代码中,Prop1 在初始化列表中声明,然后用作 Prop2 的初始值。

错误 ID:BC36548

示例

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

更正此错误

将的 Prop1 初始值分配给局部变量。 将该变量分配给 Prop1Prop2,如下面的代码所示:

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

另请参阅