【发布时间】:2009-06-11 14:59:03
【问题描述】:
这行 C# 使用 Lambda 表达式在 VB.Net 中会是什么?
string s = blockRenderer.Capture(() => RenderPartialExtensions.RenderPartial(h, userControl, viewData));
功能的东西 - 但我不知道究竟是如何......
【问题讨论】:
这行 C# 使用 Lambda 表达式在 VB.Net 中会是什么?
string s = blockRenderer.Capture(() => RenderPartialExtensions.RenderPartial(h, userControl, viewData));
功能的东西 - 但我不知道究竟是如何......
【问题讨论】:
应该是这样的:
Dim s As String = blockRenderer.Capture(Function() RenderPartialExtensions.RenderPartial (h, userControl, viewData))
【讨论】:
在线查看C# to VB.NET converter。它并不总是让事情变得完美,但它在我使用它的所有时间里都做得很好。
Dim s As String = blockRenderer.Capture(Function() RenderPartialExtensions.RenderPartial(h, userControl, viewData))
【讨论】:
Dim s As String = _
blockRenderer.Capture( _
Function() RenderPartialExtensions.RenderPartial(h, userControl, viewData) _
)
【讨论】:
VB.NET中的Lambda表达式需要有返回值,解决方法是包装方法。
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
【讨论】: