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