اذهب إلى المحتوى
  • 0

كيف أولّد قيمة نصية بشكل عشوائي بلغة#C؟

Badraoui

السؤال

أحاول توليد قيم نصية بشكل عشوائي على تطبيق مبني بلغة #C، وهذه هي محاولتي:

private string RandomString(int size)
{
    StringBuilder builder = new StringBuilder();
    Random random = new Random();
    char ch;
    for (int i = 0; i < size; i++)
    {
        ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));                 
        builder.Append(ch);
    }

    return builder.ToString();
}

 string Rand1 = RandomString(4);

 string Rand2 = RandomString(4);

 string docNum = Rand1 + "-" + Rand2;

 لكن أحصل على نفس القيمة النصية دائما، فأين هو الخطأ؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

كان السبب الرئيسي لحصولك على نفس القيمة المُولدة عشوائيا هو استعمالك لنفس instance أي نفس المتغير، مما يحتم على البرنامج إرجاع نفس القيمة لأنه لم يتم توليد القيمة من جديد، لذا وجب عليك تغيير في الكود البرمجي ليصبح على الشكل التالي:

private static Random random = new Random((int)DateTime.Now.Ticks);
private string RandomString(int size)
    {
        StringBuilder builder = new StringBuilder();
        char ch;
        for (int i = 0; i < size; i++)
        {
            ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));                 
            builder.Append(ch);
        }

        return builder.ToString();
    }

// الحصول على القيمة العشوائية الأولى
string Rand1 = RandomString(4);

// الحصول على القيمة العشوائية الثانية
string Rand2 = RandomString(4);

// إنشاء  القيمة المُرجعة بمزج القيمتين السابقتين
string docNum = Rand1 + "-" + Rand2;

*ملاحظة: يجب الانتباه لمثل هذه الأمور التي قد تبدو بسيطة، لكنها مهمة في عالم البرمجة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...