Trochu jsem to zobjektoval, principiálně je to však stejné Třída generátoru jmen (děděná z listu)
Public Class NameGenerator
Inherits List(Of String)
Private ReadOnly _rnd As Random
Public Sub New()
_rnd = New Random()
End Sub
Private _id As Integer
''' <summary>
''' Id jména
''' </summary>
Public ReadOnly Property Id As Integer
Get
Return _id
End Get
End Property
Private _name As String
''' <summary>
'''Jméno.
''' </summary>
Public ReadOnly Property Name As String
Get
Return _name
End Get
End Property
Private _isGenerated As Boolean
''' <summary>
''' Příznak, že jméno bylo vygenerováno
''' </summary>
Public ReadOnly Property IsGenerated As Boolean
Get
Return _isGenerated
End Get
End Property
''' <summary>
''' Generuje náhodnou položku z listu
''' </summary>
''' <exception cref="System.ArgumentException">Není vloženo žádné jméno</exception>
Public Sub GenerateName()
If (Count = 0) Then Throw New ArgumentException("Není vloženo žádné jméno")
_id = _rnd.Next(0, Count - 1)
_name = Me(Id)
_isGenerated = True
End Sub
End Class
Naplnění a použití:
Public Class Form1
Private ReadOnly _jmena As New NameGenerator()
Public Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
'Inicializace jmen
InicializaceJmen()
End Sub
''' <summary>
''' Inicializace seznamu jmen
''' </summary>
''' <remarks></remarks>
Private Sub InicializaceJmen()
_jmena.AddRange( _
{"Lukáš", _
"David", _
"Michal", _
"Lucka", _
"Eva", _
"Milan", _
"Anna", _
"Pavel", _
"Jana", _
"Karel", _
"Monika"})
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'generování jména
_jmena.GenerateName()
'vypsání do labelu
Label1.Text = String.Format("{0} {1}", _jmena.Id, _jmena.Name)
End Sub
End Class
|