Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.net新手试图转换一些c#代码_Vb.net_Anonymous Function_Anonymous Methods_C# To Vb.net - Fatal编程技术网

VB.net新手试图转换一些c#代码

VB.net新手试图转换一些c#代码,vb.net,anonymous-function,anonymous-methods,c#-to-vb.net,Vb.net,Anonymous Function,Anonymous Methods,C# To Vb.net,我在将以下相当直接的c#代码转换为vb.net 4.0时遇到了麻烦,据我所知,vb.net 4.0具有匿名委托。我只是还没弄明白 _combo.DataBound += (sender, args) => { var item = _combo.FindItemByValue(values[0].ToString());

我在将以下相当直接的c#代码转换为vb.net 4.0时遇到了麻烦,据我所知,vb.net 4.0具有匿名委托。我只是还没弄明白

_combo.DataBound += (sender, args) =>
                                    {
                                        var item = _combo.FindItemByValue(values[0].ToString());
                                        if (item != null)
                                            item.Selected = true;
                                    };
我试过以下方法

_combo.DataBound += Function(sender, args)
                                        Dim item = _combo.FindItemByValue(values(0).ToString())
                                        If item IsNot Nothing Then
                                            item.Selected = True
                                        End If

                                    End Function

但是编译器抱怨不能直接调用DataBound,而必须使用RaiseEvents

AddHandler\u combo.DataBound,Function(sender,args)。。。我认为结束函数是正确的语法。

AddHandler\u combo.DataBound,Function(sender,args)。。。结束函数是我认为正确的语法。

我想我已经弄明白了

宣布一个事件

私有事件OnCombo_数据绑定(ByVal值 作为ArrayList)

使用RaiseEvent来启动它

RaiseEvent OnCombo_DataBound(values)
为事件创建一个处理程序

 Private Sub Combo_DataBound(ByVal values As System.Collections.ArrayList) Handles OnCombo_DataBound
                Dim item = _combo.FindItemByValue(values(0).ToString())
                If item IsNot Nothing Then
                    item.Selected = True
                End If
            End Sub

我想我明白了

宣布一个事件

私有事件OnCombo_数据绑定(ByVal值 作为ArrayList)

使用RaiseEvent来启动它

RaiseEvent OnCombo_DataBound(values)
为事件创建一个处理程序

 Private Sub Combo_DataBound(ByVal values As System.Collections.ArrayList) Handles OnCombo_DataBound
                Dim item = _combo.FindItemByValue(values(0).ToString())
                If item IsNot Nothing Then
                    item.Selected = True
                End If
            End Sub

我不是.net类型的人,但我真的很好奇(顺便说一句)为什么有人想把代码从c#转换成vb。我相信这有一个很好的理由,但这是什么呢?这是从一个论坛帖子中提取出来的,是我正在工作的一个问题。这个项目是vb.net(不是我的强项),关于我正在处理的问题的讨论都是用c语言进行的。啊,很公平。有道理。我的哀悼。VB.NET中的匿名代表必须是单行。在单行中完成上述操作是一个挑战,或者您需要调用一个中间函数。我不是.net类型的人,但我真的很好奇(顺便问一下)为什么有人想将代码从c#转换为vb。我相信这有一个很好的理由,但这是什么呢?这是从一个论坛帖子中提取出来的,是我正在工作的一个问题。这个项目是vb.net(不是我的强项),关于我正在处理的问题的讨论都是用c语言进行的。啊,很公平。有道理。我的哀悼。VB.NET中的匿名代表必须是单行。在单行中执行上述操作是一个挑战,或者您需要调用一个中间函数。这是在匿名委托中执行此操作的正确方法,谢谢。请参阅我的答案,了解如何将其更改为普通事件和委托。这是与匿名委托内联使用的正确方法,谢谢。查看我的答案,了解如何将其更改为常规事件并委派。