<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
File: Default.aspx.vb
Imports System
Imports System.Collections
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 peopleStack As New Stack()
peopleStack.Push(scott)
peopleStack.Push(bill)
peopleStack.Push(srini)
Dim x As Person = CType(peopleStack.Pop(), Person)
Response.Write(x.FullName & "<BR/>")
x = CType(peopleStack.Pop(), Person)
Response.Write(x.FullName & "<BR/>")
x = CType(peopleStack.Peek(), Person) 'Peek, not Pop
Response.Write(x.FullName & "<BR/>")
x = CType(peopleStack.Pop(), Person)
Response.Write(x.FullName & "<BR/>")
End Sub
End Class