Лямбда-выражение из C # в VB.Net - PullRequest
1 голос
/ 11 июня 2009

Какой будет эта строка C # с использованием лямбда-выражения в VB.Net?

string s = blockRenderer.Capture(() => RenderPartialExtensions.RenderPartial(h, userControl, viewData));

Что-то с функцией - но я не могу понять, как именно ...

Ответы [ 4 ]

5 голосов
/ 11 июня 2009

Это должно быть примерно так:

Dim s As String = blockRenderer.Capture(Function() RenderPartialExtensions.RenderPartial (h, userControl, viewData))
3 голосов
/ 11 июня 2009

Проверьте это онлайн C # в VB.NET конвертер . Не всегда все получается идеально, но все время я справляюсь с работой.

Dim s As String = blockRenderer.Capture(Function() RenderPartialExtensions.RenderPartial(h, userControl, viewData))
1 голос
/ 26 июня 2009

Лямбда-выражения в VB.NET должны иметь возвращаемое значение, решение - метод-оболочка.

Public Shared Function RenderPartialToString(ByVal userControl As String, ByVal viewData As Object, ByVal tempData As Object, ByVal controllerContext As ControllerContext) As String

        Dim h As New HtmlHelper(New ViewContext(controllerContext, New WebFormView("omg"), viewData, tempData), New ViewPage())
        Dim blockRenderer As New MvcContrib.UI.BlockRenderer(controllerContext.HttpContext)
        Dim s = blockRenderer.Capture(New Action(Function() renderPartialLambda(h, userControl, viewData)))

        Return s

End Function





Private Shared Function renderPartialLambda(ByVal html As HtmlHelper, ByVal userControl As String, ByVal viewData As Object)
                RenderPartialExtensions.RenderPartial(html, userControl, viewData)
                Return Nothing
End Function
1 голос
/ 11 июня 2009
Dim s As String = _
    blockRenderer.Capture( _
        Function() RenderPartialExtensions.RenderPartial(h, userControl, viewData) _
     )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...