代码之家  ›  专栏  ›  技术社区  ›  John

通过引用将参数传递到公共共享方法中的问题

  •  0
  • John  · 技术社区  · 15 年前

    我试图通过引用将addlInfoList传递到另一个类的函数中:

    Public Shared Sub SortAddlInfo(ByRef addlInfoList As List(Of AddlInfo))
        addlInfoList.Sort(AddressOf Comparer)
    End Sub
    
    Private Function Comparer(ByVal x As AddlInfo, ByVal y As AddlInfo) As Integer
        Dim result As Integer = x.AddlInfoType.CompareTo(y.AddlInfoType)
        Return result
    End Function
    

    重载解析失败,因为无法使用以下参数调用可访问的“Sort”:

    'Public Sub Sort(comparison As System.Comparison(Of AddlInfo))': Cannot refer to an instance member of a class from within a shared method or shared member initializer without an explicit instance of the class.
    'Public Sub Sort(comparer As System.Collections.Generic.IComparer(Of AddlInfo))': 'AddressOf' expression cannot be converted to 'System.Collections.Generic.IComparer(Of MyProject.AddlInfo)' because 'System.Collections.Generic.IComparer(Of MyProject.AddlInfo)' is not a delegate type.
    

    我可以将这些方法放回调用类,但我希望能够从应用程序中的不同类调用这些方法。

    有办法吗(或者我需要解释更多吗?)

    提前谢谢!

    1 回复  |  直到 15 年前
        1
  •  1
  •   Sonny Boy    15 年前

    尝试将比较函数放入实现IComparer的类中。

    推荐文章