Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Anonim bir türün başlatma listesinde tanımlanan özellikler, aynı listedeki lambda ifade tanımının parçası olamaz. Örneğin, aşağıdaki kodda özelliği Num tanımına LambdaFuneklenemez.
' Not valid.
'Dim anon = New With {.Num = 4, .LambdaFun = Function() .Num > 0}
Hata Kimliği: BC36549
Bu hatayı düzeltmek için
Anonim türü iki bölüme bölmeyi göz önünde bulundurun:
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))Özellik olarak
Keybildirirsenizanon1.Numdeğerinin değiştirilemeyeceğini unutmayın.Alternatif olarak anonim tür özelliğine erişmek için normal bir işlev deyimi kullanabilirsiniz:
Function testNum(ByVal n As Integer) As Boolean Return n > 0 End Function Console.WriteLine(testNum(anon1.Num))Benzer şekilde, anonim türün dışında tanımlanan bir lambda işlevi kullanabilirsiniz:
Dim lambdaFun1 = Function() anon1.Num > 0 Dim lambdaFun2 = Function(n As Integer) n > 0