Function : GetVB05or08Random (Also mit Klasse Random)

    • VB.NET

    Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von LaMa5.

      Function : GetVB05or08Random (Also mit Klasse Random)

      hi, hab mich nach mikeb's ratschlag gerichtet und ne neue klasse gemacht:

      VB.NET-Quellcode

      1. Public Class GetVB05or08RND
      2. Shared Function GetRandom(ByVal max As Integer, Optional ByVal min As Integer = 0) As Integer
      3. If max < min Then
      4. GetRandom = 0
      5. Exit Function
      6. End If
      7. Dim RNDD As Random = New Random()
      8. GetRandom = RNDD.Next(min, max)
      9. End Function
      10. End Class


      hoffentlich ist die besser ;) :P
      | Keine Fragen per PN oder Skype.
      Warum eine Klasse in eine Klasse packen ?

      Und gibt es einen vernünftigen grund exit function zu nutzen und nicht return ?

      VB.NET-Quellcode

      1. Private Function GetRandom(Max as Integer, Min as integer) as integer
      2. return iif(min > max,0,new Random ().Next (min,max))
      3. End Sub

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „bsHobbit“ ()

      hallo mad andy,

      ich hatte min und max vertauscht.
      doch das brachte mir eine exception !

      wenn ich min und max so übergebe, wie es die funktion haben will, gibt diese
      immer eine 0 zurück.

      den iif befehl kenn ich nicht.
      sicher auch eines dieser vb6 reste

      Edit:
      wenn es schon eine klasse sein soll, dann würde ich das etwa so machen.
      nochwas:
      wie schon angesprochen macht es keinen sinn immer eine neue instanz der random klasse zu erzeugen,
      da sonst die gefahr besteht gleiche zahlen zu bekommen.

      VB.NET-Quellcode

      1. Public Class ClassRandom
      2. Private _min As Integer
      3. Private _max As Integer
      4. Private r As New Random
      5. Public Sub New(ByVal min As Integer, ByVal max As Integer)
      6. _min = min
      7. _max = max
      8. End Sub
      9. ''' <summary>Gibt einen zufälligen Integer-Wert zurück.</summary>
      10. ''' <remarks>Der Rückgabewert befindet sich zwischen Min und Max, welche
      11. ''' Beim Instanzieren angegeben wurden.</remarks>
      12. Public ReadOnly Property GetInteger() As Integer
      13. Get
      14. Return r.Next(_min, _max)
      15. End Get
      16. End Property
      17. ''' <summary>Gibt einen Zufälligen Double-Wert zwischen 0.0 und 1.0 zurück.</summary>
      18. ''' <remarks></remarks>
      19. Public ReadOnly Property GetDouble() As Double
      20. Get
      21. Return r.NextDouble()
      22. End Get
      23. End Property
      24. Public Property Min() As Integer
      25. Get
      26. Return _min
      27. End Get
      28. Set(ByVal value As Integer)
      29. _min = value
      30. End Set
      31. End Property
      32. Public Property Max() As Integer
      33. Get
      34. Return _max
      35. End Get
      36. Set(ByVal value As Integer)
      37. _max = value
      38. End Set
      39. End Property
      40. End Class


      gruss

      mikeb69

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mikeb69“ ()

      Sorry, hab mich beim zeichen vertippt... ich habs korrigiert...

      Mike mike... das ist sicher kein VB6 rest... das ist ein sinvoller befehl den jeder C Programmierer kennen sollte ;)

      Quellcode

      1. if (x>y) ?3:1


      Heisst in VB .NET nun IIF...

      Ach also es geht eigentlich mit dem new Random recht gut von 1000000 waren immerhin 87% verschieden xD
      Hi,

      den Befehl gibt es mit 100%iger Sicherheit in VB6 und hat immer 3 Argumente.

      MSDN: IIf(expr, truepart, falsepart)


      bye ...

      LaMa5.
      Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
      (Autor: Earl Wilson, amerik. Schriftsteller)

      https://www.serviceteam-md.de