Badraoui نشر 10 فبراير 2016 أرسل تقرير مشاركة نشر 10 فبراير 2016 أحاول توليد قيم نصية بشكل عشوائي على تطبيق مبني بلغة #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; لكن أحصل على نفس القيمة النصية دائما، فأين هو الخطأ؟ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 E.Nourddine نشر 11 فبراير 2016 أرسل تقرير مشاركة نشر 11 فبراير 2016 كان السبب الرئيسي لحصولك على نفس القيمة المُولدة عشوائيا هو استعمالك لنفس 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; *ملاحظة: يجب الانتباه لمثل هذه الأمور التي قد تبدو بسيطة، لكنها مهمة في عالم البرمجة. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Badraoui
أحاول توليد قيم نصية بشكل عشوائي على تطبيق مبني بلغة #C، وهذه هي محاولتي:
لكن أحصل على نفس القيمة النصية دائما، فأين هو الخطأ؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.