How to create a Die in code

 

Something that people sometimes want to do is create a Die in code, I thought I would supply code on one method of doing this.

Public Class Die
    Private Shared rndGen As New Random
    Private _numFaces As Integer
    Private _curValue As Integer
#Region "Properties"
    Public Property NumberOfFaces() As Integer
        Get
            Return _numFaces
        End Get
        Set(ByVal value As Integer)
            If value <= 0 Then
                Throw New ArgumentOutOfRangeException()
            End If
            _numFaces = value
        End Set
    End Property
    Public Property CurrentValue() As Integer
        Get
            Return _curValue
        End Get
        Set(ByVal value As Integer)
            _curValue = value
        End Set
    End Property
#End Region
#Region "Constructors"
    Public Sub New(ByVal numFaces As Integer)
        'If the value is inappropriate then NumberOfFaces property will throw
        'an exception so we don't need to here
        NumberOfFaces = numFaces
    End Sub
#End Region
#Region "Methods"
    Public Function roll() As Integer
        _curValue = rndGen.Next(1, _numFaces + 1)
        Return _curValue
    End Function
#End Region
End Class