0
class Student
{
private string FirstName { get; set; }
private string LastName { get; set; }
private int age { get; set; }
private int studentID { get; set; }
private static int count = 0;
**static Random randomNumber = new Random(); // works**
**Random randomNumber = new Random(); // doesn't work I get the same studentID number**
public Student()// constructor
{
this.studentID = randomNumber.Next(1000000, 100000000);
count++;
Console.WriteLine("count {0} studentID {1}", count, studentID);
}
public Student(string first, string last, int age)
{
this.studentID = randomNumber.Next(1000000, 100000000);
count++;
Console.WriteLine("count {0} studentID {1}", count, studentID);
this.FirstName = first;
this.LastName = last;
this.age = age;
}
...... continuation
a few get methods
...... continuation
public void PrintData()
{
Console.WriteLine("Name is {0}, Lastname is {1} , Age is {2} , studentID is {3}", FirstName, LastName, age, this.studentID);
}
爲什麼我總是得到相同的號碼,但如果我做了隨機對象靜態它生成/分配新的號碼。不知道我的邏輯有問題。爲什麼我需要使Random對象靜態,如果我從構造函數中調用它的話?
每'Random'實例生成數字的對於給定的種子的相同序列。你永遠不會種子你的,所以它總是使用默認值,並給出相同的數字。 – Cameron 2012-03-21 21:31:59
感謝所有的意見我認爲種子不重置每一次我叫下一個方法,認錯了 – Marin 2012-03-22 05:01:39