PDA

View Full Version : سوال: خروجی متفاوت برنامه در حالت اجرا و حالت دیباگ



powerware
سه شنبه 15 فروردین 1396, 18:39 عصر
با سلام خدمت دوستان

کد پایین جهت تولید یک رشته تصادفی با طول دلخواه نوشته شده است. مشکل این است که مسیج باکسهای اول تا سوم بدرستی رشته های متفاوتی نمایش میدهد ولی مسیج باکسهای چهارم تا ششم خروجی یکسانی دارند ولی در حالت دیباگ، مسیج باکسهای چهارم تا ششم نیز بدرستی عمل میکنند. لطفا در صورتی که دوستان درباره دلیل ایجاد این مشکل مطلبی بنظرشان میرسد، راهنمایی نمایند.

با تشکر.


namespace WindowsFormsApplication
{
public partial class Form1 : Form
{




public string GetRandomString(int len)
{
char[] letters = "abcdefghijklmnopqrstuvwxyz".ToCharArray();
Random r = new Random();
string randomString = "";
for (int i = 0; i < len; i++)
{
randomString += letters[r.Next(0, letters.Length-1)].ToString();
}
return randomString;
}




public Form1()
{
InitializeComponent();
}





private void button1_Click(object sender, EventArgs e)
{
string s1 = GetRandomString(20);
MessageBox.Show(s1);
string s2 = GetRandomString(20);
MessageBox.Show(s2);
string s3 = GetRandomString(20);
MessageBox.Show(s3);


string s4 = GetRandomString(20);
string s5 = GetRandomString(20);
string s6 = GetRandomString(20);
MessageBox.Show(s4);
MessageBox.Show(s5);
MessageBox.Show(s6);
}
}
}

Mag-Mag
پنج شنبه 17 فروردین 1396, 13:17 عصر
سلام
این کد رو برای تولید رشته امتحان کن


private readonly Random _rng = new Random();
private const string _chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

private string RandomString(int size)
{
char[] buffer = new char[size];

for (int i = 0; i < size; i++)
{
buffer[i] = _chars[_rng.Next(_chars.Length)];
}
return new string(buffer);
}