C# Dersleri 43 - Random Kullanarak Rastgele Sayılar ve Stringler Üretmek

     Bazı durumlarda uygulama içerisinde tamamen rastgele üretilen değerlere ihtiyaç duyarız. Bu değerler sayı veya harf olabileceği gibi bu ikisinin kombinasyonundan oluşan string türünde veriler de olabilir. Rastgele sayılar özellikle şans veya tahmine dayalı oyunlarda sıklıkla kullanılırlar. Bunun dışında bilgi yarışmalarında farklı sorular ekrana getirilirken, kullanıcılara otomatik şifre oluşturma esnasında, kura çekilişlerinde rastgele değerlere ihtiyaç duyulmaktadır. Tüm bu rastgele değerleri üretmekte kullanabileceğimiz pratik bir class var C# dilinde : Random.

     Rastgele Sayılar Üretmek     

private void btnClick_Click(object sender, EventArgs e)
{
    Random rnd = new Random();
    MessageBox.Show(rnd.Next().ToString());
}

     İşleme bir Random nesnesi oluşturarak başlıyorum. Nesneye rnd adını verdim. Random classının içerdiği Next() methodu, rastgele bir int değer üretilmesini sağlar. Yukarıdaki kod parçacığını çalıştırırsanız, her seferinde farklı bir değer çıktığını göreceksiniz.

     Eğer oluşturulan rastgele sayılara alt ve üst limitler vermek isterseniz, Next() methodunun 2 int parametre alan overloadını kullanabilirsiniz.

private void btnClick_Click(object sender, EventArgs e)
{
    Random rnd = new Random();
    MessageBox.Show(rnd.Next(0, 100).ToString());
}

     Bu kod parçacığını çalıştırdığınızda oluşturulan rastgele değerin yalnızca 0 ile 100 arasında olduğunu göreceksiniz. Burada dikkat edilmesi gereken nokta, 0 oluşturulabilecek değerlerden biri olmasına rağmen 100 bu değerlerin dışındadır. Yani bu kod minimum 0, maximum 99 üretir.     

private void btnClick_Click(object sender, EventArgs e)
{
    Random rnd = new Random();
    MessageBox.Show(rnd.NextDouble().ToString());
}

     Random classının içerdiği NextDouble() methodu, değeri 0.0 ile 1.0 arasında olan rastgele değerler üretir. Bu kod parçacığını çalıştırdığınızda değerlerin yalnızca 0 ile 1 arasındaki double değerler olduğunu göreceksiniz. Eğer rastgele yüzde değerler oluşturmak istiyorsanız kullanışlı olabilir.

     Rastgele Stringler Üretmek     

private void btnClick_Click(object sender, EventArgs e)
{
    char[] letters = "qwertyuıopğüasdfghjklşizxcvbnmöç".ToCharArray();
    Random rnd = new Random();
    string randomString = "";
    for (int i = 0; i < 10; i++)
    {
        randomString += letters[rnd.Next(0, letters.Length)];
    }

    MessageBox.Show(randomString);
}

     Öncelikle oluşmasını istediğim rastgele stringde bulunabilecek karakterleri letters isimli char dizime ekledim. Yalnızca harflerden oluşan bir string üretmek istediğim için rakam veya diğer karakterleri eklemedim. letters[rnd.Next(0, letters.Length)] kod cümlesi bize, bu dizideki rastgele bir karakteri verecektir. Bir for döngüsü ile bu işlemi 10 defa tekrarlar ve çıkan karakterleri bir string değişkene eklersem, 10 karakterli rastgele bir string elde ederim. Kullanıcılara ilk şifreyi tanımlarken çok kullandığımız bir yöntemdir. Ayrıca http://www.passwordsgenerator.net tarzı şifre üretme sitelerinin arkasında yatan basit çalışma mantığı da budur.

YORUMLAR
Email Adresi *
Görüntülenecek İsim *
Yorum *
Paylaş
  • f