当使用匿名类型的一个属性来初始化匿名类型的其他属性时,编译器不接受将匿名类型转换为表达式树。 例如,在下面的代码中,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
初始值分配给局部变量。 将该变量分配给 Prop1
和 Prop2
,如下面的代码所示:
Sub Main()
Dim temp = 2
ExpressionExample(Function() New With {.Prop1 = temp, .Prop2 = temp})
End Sub