如何在Visual Basic中实现比较器?

我想在Visual Basic中实现一个比较器,但不知道如何开始。我需要一个函数,它接受两个参数并返回它们的比较结果,以便我可以对它们进行排序或进行其他操作。我的想法是创建一个名为“Comparer”的模块,其中包含一个名为“Compare”的函数。我需要帮助构建这个函数的语法结构和语义,以便我可以在我编写的程序中对其进行使用。是否有任何指导可以提供给我?

提问时间:2023-06-27 08:26:48 编辑时间:2023-06-27 08:26:50 提问者: Ace_Voyager
  • Black_Raven
    5

    在Visual Basic中实现比较器可以使用比较器接口IComparer。以下是一个示例代码,其中包含一个名为“Comparer”的模块和一个名为“Compare”的函数,用于实现基于整数和字符串的比较器。

    Module Comparer Public Function CompareInt(ByVal x As Integer, ByVal y As Integer) As Integer If x < y Then Return -1 ElseIf x > y Then Return 1 Else Return 0 End If End Function

    Public Function CompareString(ByVal x As String, ByVal y As String) As Integer
        Return String.Compare(x, y)
    End Function
    

    End Module

    你可以将这些函数添加到你的程序中,然后使用它们来比较整数和字符串对象。例如:

    Dim nums() As Integer = {3, 1, 4, 1, 5, 9, 2} Array.Sort(nums, AddressOf Comparer.CompareInt) ' nums will be sorted in ascending order

    Dim words() As String = {"banana", "apple", "orange"} Array.Sort(words, AddressOf Comparer.CompareString) ' words will be sorted in alphabetical order

    回答时间:2023-06-27 08:26:53