19 Ocak 2018 Cuma

Random Sınıfı

Giriş
Şu satırı dahil ederiz.
using System;
Bu sınıf yeriner RNGCryptoServiceProvider da kullanılabilir.

Bu sınıfın "stable" olma garantisi yok. Açıklaması şöyle.
.NET's System.Random is not stable (because its generation behavior may change in the future).
Constructor
Seed olarak saati kullanır. Aynı anda birden çok Random nesnesi yaratılırsa aynı sayıları üretirler. Açıklaması şöyle.
If multiple Random instances are created at the same time, their seed is the same. This means they all behave equal.
Şöyle yaparız.
Random rand = new Random ();
Constructor - int seed
Şöyle yaparız.
Random rand = new Random (DateTime.Now.Millisecond);
Next metodu
Şöyle yaparız.
int nymber = rand.Next();
Next metodu - int (inclusive) + int (exclusive)
Şöyle yaparız.
int number = rand.Next (1, 100);
NextBytes metodu
Şöyle yaparız.
byte[] array = new byte[8];
rand.NextBytes (array);
Diğer
Bir sürü thread ile sayı üretmek istersek şöyle yaparız.
//Function to get a random number 
private static readonly Random random = new Random(); 
private static readonly object syncLock = new object(); 
public static int RandomNumber(int min, int max)
{
  lock(syncLock) { // synchronize
    return random.Next(min, max);
  }
}

Hiç yorum yok:

Yorum Gönder