VB.Net by API/System/IComparable

Материал из VB Эксперт
Перейти к: навигация, поиск

Implements IComparable

<source lang="vbnet"> Imports System Public Class MainClass

 Shared Sub Main()
   Dim e1 As New Employee("E1", 50000)
   Dim e2 As New Employee("E2", 60000)
   Dim e3 As New Employee("E3", 20000)
   Dim e4 As New Employee("E4", 1)
   Dim theEmployees() As Employee = {e1, e2, e3, e4}
   
   Array.Sort(theEmployees) "call the CompareTo 
   
   Dim aEmployee As Employee
   For Each aEmployee In theEmployees
     Console.WriteLine(aEmployee.TheName & " has yearly salary $" & FormatNumber(aEmployee.Salary))
   Next
 End Sub

End Class Public Class Employee

 Implements IComparable
 Private m_Name As String
 Private m_Salary As Decimal
 Public Sub New(ByVal theName As String, ByVal curSalary As Decimal)
   m_Name = TheName
   m_Salary = curSalary
 End Sub
 Public Function CompareTo(ByVal AnEmployee As Object) As Integer _
 Implements IComparable.rupareTo
   If CType(AnEmployee, Employee).Salary < Me.Salary Then
     Return -1
   ElseIf CType(AnEmployee, Employee).Salary = Me.Salary Then
     Return 0
   ElseIf CType(AnEmployee, Employee).Salary > Me.Salary Then
     Return 1
   End If
 End Function
 Public ReadOnly Property TheName() As String
   Get
     Return m_Name
   End Get
 End Property
 Public ReadOnly Property Salary() As Decimal
   Get
     Return MyClass.m_Salary
   End Get
 End Property

End Class


 </source>