次の方法で共有


BC36548: 匿名型を式ツリーに変換できません。これは、型のプロパティを使用して別のプロパティを初期化するためです。

匿名型の 1 つのプロパティを使用して匿名型の別のプロパティを初期化する場合、コンパイラは匿名型から式ツリーへの変換を受け入れません。 たとえば、次のコードでは、 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

こちらも参照ください