Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In der Initialisierungsliste eines anonymen Typs definierte Eigenschaften können nicht Teil der Definition eines Lambda-Ausdrucks in derselben Liste sein. Beispielsweise darf im folgenden Code die Num -Eigenschaft nicht in der Definition von LambdaFunenthalten sein.
' Not valid.
'Dim anon = New With {.Num = 4, .LambdaFun = Function() .Num > 0}
Fehler-ID: BC36549
So beheben Sie diesen Fehler
Teilen Sie den anonymen Typ in zwei Teile:
Dim anon1 = New With {.Num = 4} Dim anon2 = New With {.LambdaFun = Function() anon1.Num > 0} ' - or - Dim anon3 = New With {.lambdaFun = Function(n As Integer) n > 0} Console.WriteLine((anon2.LambdaFun)()) Console.WriteLine(anon3.lambdaFun(anon1.Num)) anon1.Num = -5 Console.WriteLine((anon2.LambdaFun)()) Console.WriteLine(anon3.lambdaFun(anon1.Num))Wenn Sie
anon1.NumalsKey-Eigenschaft deklarieren, kann der zugehörige Wert nicht geändert werden.Als Alternative können Sie eine reguläre Function-Anweisung verwenden, um auf die anonyme Typeigenschaft zuzugreifen:
Function testNum(ByVal n As Integer) As Boolean Return n > 0 End Function Console.WriteLine(testNum(anon1.Num))Auf ähnliche Weise können Sie eine außerhalb des anonymen Typs definierte Lambda-Funktion verwenden:
Dim lambdaFun1 = Function() anon1.Num > 0 Dim lambdaFun2 = Function(n As Integer) n > 0