Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Costruttore Random ()

 

Data di pubblicazione: novembre 2016

Inizializza una nuova istanza di Random classe, utilizzando un valore di inizializzazione predefinito dipendente dal tempo.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public Random()

Il valore di inizializzazione predefinito è derivato dall'orologio di sistema e ha una risoluzione limitata. Di conseguenza, diversi Random gli oggetti creati in stretta successione da una chiamata al costruttore predefinito avranno valori di inizializzazione predefiniti identici e, pertanto, produrranno insiemi identici di numeri casuali. Questo problema può essere evitato utilizzando una singola Random oggetto per generare tutti i numeri casuali. Possono anche aggirare il problema modificando il valore di inizializzazione restituito dal clock di sistema e quindi in modo esplicito specificando il nuovo valore di inizializzazione per il Random(Int32) costruttore. Per ulteriori informazioni, vedere il Random(Int32) costruttore.

Chiamare questo costruttore se si desidera che il generatore di numeri casuali per generare una sequenza di numeri casuali. Per generare una sequenza di numeri casuali che saranno lo stesso per diversi generatori di numeri casuali predefinita, chiamare il Random(Int32) costruttore con un valore di inizializzazione predefinito. Questo Random overload del costruttore viene spesso utilizzata dai test delle applicazioni che utilizzano numeri casuali.

Dopo aver creato l'istanza del generatore di numeri casuali, si chiama singoli Random metodi, ad esempio Next() o NextDouble(), per generare numeri casuali.

Nell'esempio seguente viene utilizzato il costruttore predefinito per creare un'istanza di tre Random gli oggetti e per ognuno viene visualizzata una sequenza di cinque interi casuali. Poiché le prime due Random gli oggetti vengono creati in stretta successione, le relative istanze vengono create utilizzando i valori di inizializzazione identici in base all'orologio di sistema e, pertanto producono una sequenza identica di numeri casuali. D'altro canto, il costruttore predefinito del terzo Random viene chiamato dopo un ritardo di due secondi causato chiamando il Thread.Sleep metodo. Poiché questa operazione produce un valore di inizializzazione diversi per la terza Random dell'oggetto, viene prodotta una sequenza di numeri casuali diversi.

using System;
using System.Threading;

public class RandomNumbers
{
   public static void Main()
   {
      Random rand1 = new Random();
      Random rand2 = new Random();
      Thread.Sleep(2000);
      Random rand3 = new Random();
      ShowRandomNumbers(rand1);
      ShowRandomNumbers(rand2);
      ShowRandomNumbers(rand3);
   }

   private static void ShowRandomNumbers(Random rand)
   {
      Console.WriteLine();
      byte[] values = new byte[5];
      rand.NextBytes(values);
      foreach (byte value in values)
         Console.Write("{0, 5}", value);
      Console.WriteLine();   
   }
}
// The example displays the following output to the console:
//       28   35  133  224   58
//    
//       28   35  133  224   58
//    
//       32  222   43  251   49

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: