繁体   English   中英

将C#流利接口转换为VB.NET中的代码

Converting C# fluent interface to code in VB.NET

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有以下C#代码,正尝试将其转换为VB.NET。 我也想用回调替换“ Console.WriteLine”。

我认为并希望我能够在某种程度上进行转换:

nInteractorsAgent
    .AddInteractorFor(currentWindowBounds, Literals.RootId, 0, currentWindowHandle.ToString(), "MyFirstActivatable")
    .WithActivatable()
    .HasActivationFocus(id => Console.WriteLine("Id: {0} got activation focus.", id))
    .SetTentativeFocusEnabled(true)
    .HasTentativeFocus(id => Console.WriteLine("Id: {0} got tentative activation focus.", id))
    .WhenFocusChanged((id, hasTentativeFocus, hasActivationFocus) => { })
    .LostFocus(id => Console.WriteLine("Id: {0} lost focus.", id))
    .WhenActivated(id => Console.WriteLine("Id: {0} activated", id));

我在VB.NET中的方法是:

Dim v1 As VirtualInteractor = nInteractorsAgent.AddInteractorFor(currentWindowBounds, Literals.RootId, 0, "0", "MyFirstActivatable").WithActivatable().HasActivationFocus(Sub() HasActivationFocus(v1.Id)).SetTentativeFocusEnabled(True).HasTentativeFocus(Sub() HasTentativeFocus(v1.Id)).WhenFocusChanged(Sub() WhenFocusChanged(v1.Id, False, False)).LostFocus(Sub() LostFocus(v1.Id)).WhenActivated(Sub() WhenActivated(v1.Id))

Public Shared Sub HasActivationFocus(ByVal id As String)

End Sub
Public Shared Sub HasTentativeFocus(ByVal id As String)

End Sub
Public Shared Sub WhenFocusChanged(ByVal id As String, ByVal hasTentativeFocus As Boolean, ByVal hasActivationFocus As Boolean)

End Sub
Public Shared Sub WhenFocusChanged()

End Sub
Public Shared Sub LostFocus(ByVal id As String)

End Sub
Public Shared Sub WhenActivated(ByVal id As String)

End Sub

但是,编译器告诉我有关某些问题

.WhenFocusChanged(Sub() WhenFocusChanged(v1.Id, False, False))

.WhenActivated(Sub() WhenActivated(v1.Id))

编译器告诉我,WhenFocusChanged没有版本。 声明如下:

    <Extension>
    Public Shared Function WhenFocusChanged(behaviors As IEnumerable(Of ActivatableBehavior), action As ActivationFocusChangedCallback) As IEnumerable(Of ActivatableBehavior)
    <Extension>
    Public Shared Function WhenFocusChanged(behavior As ActivatableBehavior, action As ActivationFocusChangedCallback) As ActivatableBehavior

有人可以告诉我我在这里做错了什么以及如何正确地做吗? 在这种情况下,我不知道除了给定的信息外,哪些信息对读者也很重要。

谢谢。

1 个回复

那不会像原始代码那样工作。 您需要混合使用lambda委托 这是vb.net中类似内容的快速示例。

Module Module1

    Sub Main()

        Dim o As New Test

        o.DoSomething(Sub(paramName) Console.WriteLine("The id is {0}", paramName))

    End Sub

End Module

Class Test

    Public Property ID As Integer = 10

    Delegate Sub SomeDelegate(ByVal id As Integer)

    Public Function DoSomething(ByVal f As SomeDelegate) As Test

        f(Me.ID)

        Return Me
    End Function

End Class
2 将VB.NET转换为C#接口

我需要将VB.NET接口转换为C#接口的帮助。 下面的代码定义一个Event,并在方法中引发它。 它的接口是: 当我通过转换器将接口推入上方时,它会转换事件,但还会包含一个委托,这在C#中是不允许的。 谁能给我一个提示? ...

2013-09-23 03:33:26 2 103   c#/ vb.net
3 将接口的事件从VB.Net转换为C#

我很难将下面的代码转换为C#。 以下是当我要求它为我实现时,visual studio插入的内容: 通过一些谷歌搜索,我确信我可以找到替换NotImplementedException部分的内容,但VS仍然告诉我,无论如何都没有实现定义。 ...

4 将继承转换为从C#到VB.NET的接口

如何将以下代码转换为VB.NET? 在VB.NET中,属性声明后的Implements关键字存在问题。 所以我需要做这样的事情: 但是存在重复的误导性财产NumberA1。 有什么方法可以更聪明地做到这一点? ...

2012-01-06 09:28:15 3 995   c#/ vb.net
6 将C#元帅接口代码转换为VB.NET时出现问题

我正在尝试将项目从C#转换为VB.NET,以将Outlook消息拖放到我们的程序中。 原始来源,可以发现这里在CodeProject上。 我已经完成了95%的工作,但是在实现IStorage接口时遇到了麻烦,下面概述了其中的一部分。 public interface IStorag ...

2019-01-09 15:39:20 1 68   c#/ vb.net
7 将LinQ代码从C#代码转换为VB.Net

如何将该代码重写为VB.net? 联机转换工具在尝试转换函数的Return部分时堵住了嘴。 具体来说,在线工具会给我这样的信息: 这是不正确的最后一部分: 而且我不明白这个C#代码要做什么-看起来像LINQ或类似的东西。 谢谢! ...

9 将VB.NET代码转换为C#

我有三个用VB.NET(2005)编写的项目,必须将它们转换为C#代码。 (我知道我根本不需要转换.net语言的代码)。 我没有时间重写它们,需要工具或脚本进行转换。 注意:它们是控制台应用程序。 ...

2010-04-09 14:01:00 5 1493   c#/ vb.net
10 将vb.net代码段转换为c#

Visual Studio 2005。 我正在将一些源代码转换为C#。 但是,当我在下面的代码片段中时,我注意到我没有IsNumber方法。 为什么缺少IsNumber? 我想使用它,以便我可以强制用户只输入数字。 非常感谢任何建议, ...

2011-03-03 04:56:12 4 191   c#/ vb.net
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM