無法將匿名型別轉換為運算式樹狀架構,因為該型別含有的欄位是用來初始化其他欄位
更新: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