2 回答

TA貢獻(xiàn)1786條經(jīng)驗 獲得超11個贊
C#所提供的隨機數(shù),多是以隨機種子為依據(jù),產(chǎn)生第一個隨機數(shù),而后隨機數(shù)根據(jù)上一個隨機數(shù)產(chǎn)生。根據(jù)你的程序,在很短時間內(nèi)隨機數(shù)的種子還沒有更新,所以會產(chǎn)生相同的隨機數(shù)的錯覺。
你只要將此隨機數(shù)Rendom從循環(huán)里拿出來即可。
感興趣的話,也可以這樣,在你的
Random rnd = new Random(); 后加上
Thread.Sleep(15);
也可以噢0.0

TA貢獻(xiàn)1818條經(jīng)驗 獲得超3個贊
有個很簡單的改法
為了做測試我修改了一下你的程序,結(jié)構(gòu)沒變
private void button1_Click(object sender, System.EventArgs e)
{
string stemp = "";
string[] tempDuty = new string[10];
Random rnd = new Random();
for (int i = 0; i < tempDuty.Length; i++)
{
tempDuty[i] = CreateDutyID(rnd);
stemp+=tempDuty[i]+",";
}
MessageBox.Show(stemp);
}
public string CreateDutyID(Random rand)
{
string datetime = String.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now);
string suiji = rand.Next(4, 9999).ToString();
return datetime + suiji;
}
- 2 回答
- 0 關(guān)注
- 234 瀏覽
添加回答
舉報