Chinaunix首页 | 论坛 | 博客
  • 博客访问: 188444
  • 博文数量: 106
  • 博客积分: 3810
  • 博客等级: 中校
  • 技术积分: 1007
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-18 13:35
文章分类

全部博文(106)

文章存档

2014年(17)

2011年(5)

2010年(75)

2009年(9)

我的朋友

分类:

2010-04-27 09:07:59

Module Module1

    Delegate Function CompareFunc(ByVal X As Integer, ByVal Y As Integer) As Boolean 'Delegate委托

    Function IsSmaller(ByVal X As Integer, ByVal Y As Integer) As Boolean
        Return X < Y
    End Function

    Function IsBigger(ByVal X As Integer, ByVal Y As Integer) As Boolean
        Return X > Y
    End Function

    Sub MySort(ByVal obj() As Integer, ByVal CompareMethod As CompareFunc)
        Dim I, J, Tmp As Integer
        For I = 0 To obj.Length - 2
            For J = I + 1 To obj.Length - 1
                If CompareMethod.Invoke(obj(J), obj(I)) Then
                    Tmp = obj(J)
                    obj(J) = obj(I)
                    obj(I) = Tmp
                End If
            Next
        Next
    End Sub

    Sub Show(ByVal obj() As Integer)
        Dim I As Integer
        For I = 0 To obj.Length - 1
            Console.Write("{0},", obj(I))
        Next
        Console.WriteLine()
    End Sub

    Sub Main()
        Dim IntArray() As Integer = {34, 21, 54, 32, 12}
        Dim CompareIt As CompareFunc

        Console.Write("乐博网提示:由小排到大:")
        CompareIt = AddressOf IsSmaller
        MySort(IntArray, CompareIt)
        Show(IntArray)

        Console.Write("乐博网提示:由大排到小:")
        MySort(IntArray, AddressOf IsBigger)
        Show(IntArray)

        Console.Read()
    End Sub

End Module


阅读(883) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~