<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
Untitled Page
File: Default.aspx.vb
Imports Microsoft.VisualBasic
Public Class Person
Implements IComparable
Dim FirstName As String
Dim LastName As String
Public Sub New(ByVal First As String, ByVal Last As String)
FirstName = First
LastName = Last
End Sub
Public ReadOnly Property FullName() As String
Get
Return FirstName & " " & LastName
End Get
End Property
Public Function CompareTo(ByVal obj As Object) _
As Integer Implements IComparable.CompareTo
If Not TypeOf (obj) Is Person Then
Throw New ArgumentException("Object is not a Person!")
End If
Dim p2 As Person = CType(obj, Person)
Dim lastNameResult As Integer = Me.LastName.CompareTo(p2.LastName)
If lastNameResult = 0 Then
Dim firstNameResult As Integer = Me.FirstName.CompareTo(p2.FirstName)
Return firstNameResult
Else
Return lastNameResult
End If
End Function
End Class
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Load
Dim scott As New Person("A", "B")
Dim bill As New Person("C", "D")
Dim srini As New Person("E", "F")
Dim people() As Person = {bill, scott, srini}
Dim indexOfC As Integer = Array.IndexOf(people, bill)
Response.Write("C is at " & indexOfC & "
")
Dim indexOfA As Integer = Array.IndexOf(people, scott)
Response.Write("A is at " & indexOfA & "
")
Dim scott2 As New Person("A", "B")
Dim indexOfA2 As Integer = Array.IndexOf(people, scott2)
Response.Write("A #2 is at " & indexOfA2 & "
")
Dim indexOfEquivalentA As Integer = Array.BinarySearch(people, scott2)
Response.Write("An Equivalent A is at " & indexOfEquivalentA & "
")
End Sub
End Class