2009-09-04 45 views
2

我想不出如何将此代码从C#转换为VB.net。它说 - 在下面的调用代码中没有为参数'y'指定参数。将C#转换为VB.net不会编译<param name =“x”

有什么建议吗?

感谢


调用代码:

list.Sort(Utility.CompareContactListsBySortOrder) - error here in VB 

CODE:

/// <summary> 
    /// Defines the compare criteria for two Contact List instances 
    /// </summary> 
    /// <param name="x">Contact List to be compared</param> 
    /// <param name="y">Contact List to be compared</param> 
    /// <returns></returns> 
    public static int CompareContactListsBySortOrder(ContactList x, ContactList y) 
    { 
     if (x.SortOrder.HasValue && y.SortOrder.HasValue) 
     { 
      return x.SortOrder.Value.CompareTo(y.SortOrder.Value); 
     } 

     return 0; 
    } 

''' <summary> 
''' Defines the compare criteria for two Contact List instances 
''' </summary> 
''' <param name="x">Contact List to be compared</param> 
''' <param name="y">Contact List to be compared</param> 
''' <returns></returns> 
Public Shared Function CompareContactListsBySortOrder(ByVal x As ContactList, ByVal y As ContactList) As Integer 
    If x.SortOrder.HasValue AndAlso y.SortOrder.HasValue Then 
     Return x.SortOrder.Value.CompareTo(y.SortOrder.Value) 
    End If 

    Return 0 
End Function 

Private Shared Function InlineAssignHelper(Of T)(ByRef target As T, ByVal value As T) As T 
    target = value 
    Return value 
End Function 

回答

3
list.Sort(AddressOf Utility.CompareContactListsBySortOrder) 

在VB中,您使用AddressOf运算符来获取创建委托的方法地址。在C#中,您只需指定方法名称即可。

+0

谢谢!你太快了! – user32183 2009-09-04 00:25:19

0

你需要将其更改为: list.Sort(AddressOf Utility.CompareContactListsBySortOrder)