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

时间:2011-01-11 20:15:05

标签: vb.net anonymous-function anonymous-methods c#-to-vb.net

我一直无法将以下相当直接的c#代码转换为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调用

2 个答案:

答案 0 :(得分:2)

AddHandler _combo.DataBound,Function(sender,args)... End Function是我认为正确的语法。

答案 1 :(得分:1)

我想我明白了。

宣布一个事件

  

私人活动OnCombo_DataBound(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