更新:2007 年 11 月
如果匿名类型的一个属性用于初始化匿名类型的另一个属性,则编译器无法接受将该匿名类型转换为表达式树。例如,在下面的代码中,先在初始化列表中声明 Prop1,然后将其用作 Prop2 的初始值。
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
**错误 ID:**BC36548
更正此错误
将 Prop1 的初始值赋予局部变量。将该变量分配给 Prop1 和 Prop2,如下面的代码所示。
Sub Main() Dim temp = 2 ExpressionExample(Function() New With {.Prop1 = temp, .Prop2 = temp}) End Sub