2009-09-04 29 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)