VB.Net Tutorial/Collections/Array Object

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

Object array

<source lang="vbnet">Option Strict On

Imports System

MustInherit Public Class Control
   Public Sub New(top As Integer, left As Integer)
      Me.top = top
      Me.left = left
   End Sub
   Public MustOverride Sub DrawControl( )
   Protected top As Integer
   Protected left As Integer
End Class 
Public Class Label
   Inherits Control
   Public Sub New(top As Integer, left As Integer, contents As String)
      MyBase.New(top, left) 
      listBoxContents = contents
   End Sub
   Public Overrides Sub DrawControl( )
      Console.WriteLine("Writing string to the listbox: {0}", listBoxContents)
   End Sub 
   Private listBoxContents As String 
End Class
Public Class Button
   Inherits Control
   Public Sub New(top As Integer, left As Integer)
      MyBase.New(top, left)
   End Sub
   Public Overrides Sub DrawControl( )
      Console.WriteLine("Drawing a button at {0}, {1}" + ControlChars.Lf, top, left)
   End Sub 
End Class
Public Class Tester
   Shared Sub Main( )
      Dim winArray(3) As Control
      winArray(0) = New Label(1, 2, "A")
      winArray(1) = New Label(3, 4, "B")
      winArray(2) = New Button(5, 6)
      Dim i As Integer
      For i = 0 To 2
         winArray(i).DrawControl( )
      Next i
   End Sub "Main
End Class "Tester</source>
Writing string to the listbox: A
Writing string to the listbox: B
Drawing a button at 5, 6

Populate Object array

<source lang="vbnet">Option Strict On

Imports System
Public Class Employee
    Private empID As Integer
    Public Sub New(ByVal empID As Integer)
        Me.empID = empID
    End Sub
End Class
Class Tester
    Shared Sub Main()
        Dim intArray As Integer()
        Dim empArray As Employee()
        intArray = New Integer(5) {}
        empArray = New Employee(3) {}
        Dim i As Integer
        For i = 0 To empArray.Length - 1
            empArray(i) = New Employee(i + 5)
            i = i + 1
        Next
    End Sub
End Class</source>

Sort a custom object array

<source lang="vbnet">Public Class Tester

   Public Shared Sub Main
       Dim arrayToSort() As Employee = { _
          New Employee("F", "O"), _
          New Employee("V", "O"), _
          New Employee("F", "A"), _
          New Employee("V", "C"), _
          New Employee("F", "G")}
       Array.Sort(arrayToSort)
       For Each food As Employee In arrayToSort
           Console.WriteLine(food.ToString())
       Next food
   End Sub

End Class Public Class Employee

   Implements IComparable
   Public FirstName As String
   Public LastName As String
   Public Sub New(ByVal theGroup As String, ByVal theItem As String)
       FirstName = theGroup
       LastName = theItem
   End Sub
   Public Overrides Function ToString() As String
       Return FirstName & ": " & LastName
   End Function
   Public Function CompareTo(ByVal obj As Object) As Integer _
           Implements System.IComparable.rupareTo
       Dim compareValue As String
       compareValue = obj.ToString()
       Return String.rupare(Me.ToString(), compareValue)
   End Function

End Class</source>

F: A
F: G
F: O
V: C
V: O