需要帮助将此c#代码更改为Vb吗 public void变更列表(IEnumerable newLineList) { 如果(需要调用) { BeginInvoke((操作)((t,e1)=>t.ChangeList(e1)),这个,newLineList); 返回; } }

需要帮助将此c#代码更改为Vb吗 public void变更列表(IEnumerable newLineList) { 如果(需要调用) { BeginInvoke((操作)((t,e1)=>t.ChangeList(e1)),这个,newLineList); 返回; } },c#,vb.net,C#,Vb.net,您是否在线尝试过c#to vb转换器 你在线尝试过c#to vb转换器吗 您可能希望编辑您的问题并使用此选项 您可能希望编辑您的问题并使用此选项 根据以下信息: ,有 编辑 您可以通过将编译器警告更改为函数来绕过它: Public Sub ChangeList(newLineList As IEnumerable(Of LineInfo)) If InvokeRequired Then BeginInvoke(DirectCast(Function(t, e1) t.C

您是否在线尝试过c#to vb转换器

你在线尝试过c#to vb转换器吗

您可能希望编辑您的问题并使用此选项

您可能希望编辑您的问题并使用此选项

根据以下信息:

,有

编辑

您可以通过将编译器警告更改为函数来绕过它:

Public Sub ChangeList(newLineList As IEnumerable(Of LineInfo))
    If InvokeRequired Then
        BeginInvoke(DirectCast(Function(t, e1) t.ChangeList(e1), Action(Of MainForm, IEnumerable(Of LineInfo))), Me, newLineList)
        Return
    End If    
End Sub
我现在得到一个警告,它不会在所有路径上返回一个值,如果您尝试使用结果,可能会得到一个null引用异常。只要你不这么做,你就应该没事

您可以通过不显式返回任何内容来删除警告:

Public Function ChangeList(newLineList As IEnumerable(Of LineInfo))
    If InvokeRequired Then
        BeginInvoke(DirectCast(Function(t, e1) t.ChangeList(e1), Action(Of MainForm, IEnumerable(Of LineInfo))), Me, newLineList)        
    End If
End Function
虽然这尚未经过测试,但根据它的特性,它可能会对您有所帮助

Public Function ChangeList(newLineList As IEnumerable(Of LineInfo))
    If InvokeRequired Then
        BeginInvoke(DirectCast(Function(t, e1) t.ChangeList(e1), Action(Of MainForm, IEnumerable(Of LineInfo))), Me, newLineList)        
    End If
    Return Nothing
End Function
,有

编辑

您可以通过将编译器警告更改为函数来绕过它:

Public Sub ChangeList(newLineList As IEnumerable(Of LineInfo))
    If InvokeRequired Then
        BeginInvoke(DirectCast(Function(t, e1) t.ChangeList(e1), Action(Of MainForm, IEnumerable(Of LineInfo))), Me, newLineList)
        Return
    End If    
End Sub
我现在得到一个警告,它不会在所有路径上返回一个值,如果您尝试使用结果,可能会得到一个null引用异常。只要你不这么做,你就应该没事

您可以通过不显式返回任何内容来删除警告:

Public Function ChangeList(newLineList As IEnumerable(Of LineInfo))
    If InvokeRequired Then
        BeginInvoke(DirectCast(Function(t, e1) t.ChangeList(e1), Action(Of MainForm, IEnumerable(Of LineInfo))), Me, newLineList)        
    End If
End Function
这是未经测试,但可能会帮助你

Public Function ChangeList(newLineList As IEnumerable(Of LineInfo))
    If InvokeRequired Then
        BeginInvoke(DirectCast(Function(t, e1) t.ChangeList(e1), Action(Of MainForm, IEnumerable(Of LineInfo))), Me, newLineList)        
    End If
    Return Nothing
End Function
我在手边没有编译器的情况下做到了这一点,所以在BeginInvoke调用的某个地方可能会遗漏括号,但否则它应该是正确的

其他人正在使用的Telerik转换器缺少newLineList参数的泛型类型,并尝试使用函数lambda(需要返回值)而不是子lambda(不需要返回值)

我在手边没有编译器的情况下做到了这一点,所以在BeginInvoke调用的某个地方可能会遗漏括号,但否则它应该是正确的


其他人正在使用的Telerik转换器缺少newLineList参数上的泛型类型,并尝试使用函数lambda(需要返回值)而不是子lambda(不需要返回值)。

我尝试过此方法,但不起作用,错误:t.ChangeList(e1)“表达式不生成值”我尝试过但不起作用,错误:t.ChangeList(e1)“表达式不产生值”我尝试过但不起作用,错误:t.ChangeList(e1)“表达式不产生值”我尝试过但不起作用,错误:t.ChangeList(e1)“表达式不产生值”我尝试过但不起作用,错误:t.ChangeList(e1)“表达式不产生值”@suneehs我发布了一个更新,您可以尝试。谢谢Sam,错误是围绕函数调用“t.ChangeList(e1)”,它显示“表达式不产生值”。即,“t”不包含函数ChangeList(),我想它不是强制转换为MainForm。在c#中,“t”显示为“(参数)MainForm t“但不是在vb@suneehs函数变更列表是否以MainForm声明?这就是我在测试它时设置它的方式,对我来说似乎还可以…通过将Functin更改为sub我已经尝试过了,但没有工作,错误:t.ChangeList(e1)“表达式不产生值”@suneehs我发布了一个更新,您可以尝试。谢谢Sam,错误是函数调用“t.ChangeList(e1)”,它显示“表达式不产生值”。即“t”不包含函数ChangeList(),我认为它不是强制转换为MainForm。在c#中,“t”显示为“(参数)MainForm t“但不是在vb@suneehs函数变更列表是否以MainForm声明?这就是我在测试它时设置它的方式,对我来说似乎还可以…通过将Functin更改为Sub,它已经起到了作用
Public Sub ChangeList(ByVal newLineList As IEnumerable(Of LineInfo))    
    If InvokeRequired Then        
        BeginInvoke( DirectCast( (Sub(t, e1) t.ChangeList(e1)), (Action(Of MainForm, IEnumerable(Of LineInfo)) ) ), Me, newLineList)
        Exit Sub
    End If
End Sub