C#到VB.Net转换问题

用户名

将以下行从C#转换为VB.Net时,我得到了

表达式不产生值

C#

query.ToList().ForEach(ti => cat.Add(ti));

VB.NET

query.ToList().ForEach(Function(ti) cat.Add(ti))

C#代码:

void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
    new DesignerMetadata().Register();

    var toolbox = new ToolboxControl();
    var cat = new ToolboxCategory("Standard Activities");
    var assemblies = new List<Assembly>();
    assemblies.Add(typeof(Send).Assembly);
    assemblies.Add(typeof(Delay).Assembly);
    assemblies.Add(typeof(ReceiveAndSendReplyFactory).Assembly);

    var query = from asm in assemblies
                from type in asm.GetTypes()
                where type.IsPublic &&
                !type.IsNested &&
                !type.IsAbstract &&
                !type.ContainsGenericParameters &&
                (typeof(Activity).IsAssignableFrom(type) ||
                typeof(IActivityTemplateFactory).IsAssignableFrom(type))
                orderby type.Name
                select new ToolboxItemWrapper(type);

    query.ToList().ForEach(ti => cat.Add(ti));
    toolbox.Categories.Add(cat);
    Grid.SetColumn(toolbox, 0);
    Grid.SetRow(toolbox, 1);
    LayoutGrid.Children.Add(toolbox);
}

我想要Vb.net转换。当我在vb.net中转换此代码时,在query.ToList()。ForEach(Function(ti)cat.Add(ti))中出现错误,此行.error是Expression不会产生值。

转换后的VB.NET代码

  Private Sub MainWindow_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
    Dim metadata = New DesignerMetadata()
    metadata.Register()

    'Create the ToolBoxControl
    Dim toolbox = New ToolboxControl()

    'Create a collection of category items
    Dim cat = New ToolboxCategory("Standard Activities")
    Dim assemblies = New List(Of Assembly)()
    assemblies.Add(GetType(SendAndReceiveReplyFactory).Assembly)
    assemblies.Add(GetType(Delay).Assembly)
    assemblies.Add(GetType(ReceiveAndSendReplyFactory).Assembly)

    Dim query = _
     From asm In assemblies
     From type In asm.GetTypes() _
     Where type.IsPublic AndAlso Not type.IsNested AndAlso Not type.IsAbstract AndAlso Not type.ContainsGenericParameters AndAlso (GetType(Activity).IsAssignableFrom(type) OrElse GetType(IActivityTemplateFactory).IsAssignableFrom(type)) _
     Order By type.Name
     Select New ToolboxItemWrapper(type)

    query.ToList().ForEach(Function(ti) cat.Add(ti))
    toolbox.Categories.Add(cat)
    Grid.SetColumn(toolbox, 0)
    Grid.SetRow(toolbox, 1)
    LayoutGrid.Children.Add(toolbox)
End Sub
马尔辛·尤拉塞克(MarcinJuraszek)

将有问题的行更改为该行:

query.ToList().ForEach(Sub(ti) cat.Add(ti)) 

这是必要的,因为没有单独的语法Action<T>Sub(T))和Func<T>Function(t))在VB.NET(但不是在C#)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C#代码到vb.net的转换问题

来自分类Dev

C#到VB .NET IntPtr转换

来自分类Dev

C#到VB.net代码转换。匿名的New()问题

来自分类Dev

指针从C#代码到VB.net的有问题的转换

来自分类Dev

C#到VB.net代码转换。匿名的New()问题

来自分类Dev

由于vb.net转换问题而引用C#组件

来自分类Dev

从C#到VB.NET的代码转换

来自分类Dev

C#到VB.Net转换,出现RaiseEvent麻烦

来自分类Dev

C#到VB.net字节转换

来自分类Dev

从C#到VB.Net的位映射转换

来自分类Dev

从C#到VB.NET的转换实现失败

来自分类Dev

C#到VB.net转换修复

来自分类Dev

从C#到VB.NET的转换-哪里出错了?

来自分类Dev

VB.net到C#字符编码(1251)的转换

来自分类Dev

从C#到VB的RSACryptoServiceProvider转换

来自分类Dev

VB到C#的字节转换

来自分类Dev

VB.Net到C#的替换

来自分类Dev

无法将非空类型转换问题vb.net转换为C#

来自分类Dev

VB到C#日期相关的问题(DateAdd和DateInterval)

来自分类Dev

VB到C#如果参数和1如何转换

来自分类Dev

从C ++到VB.NET的转换

来自分类Dev

C#到VB.net-2维数组的语法问题

来自分类Dev

vb.net Linq语句到C#

来自分类Dev

C#到VB.net的错误未定义

来自分类Dev

从 C# 到 VB.NET 的异或函数

来自分类Dev

VB.NET 到 C# 禁止字符数组

来自分类Dev

从 VB.NET 到 C# 的属性和方法覆盖转换

来自分类Dev

将C ++转换为VB.Net问题

来自分类Dev

无法将带有[]的索引应用于数组类型的表达式-VB.NET到C#的转换