我有2节课;主类和人类。每个人都有一些属性,包括姓名,年龄和性别。我在Person类randomName()
中有一个方法,该方法从设置列表中选择一个随机的名字和姓氏。要选择一个随机名称,我首先创建一个Random
对象。然后,我选择2个随机整数,并使用这些整数选择一个随机名称。当我尝试在主类中创建2个Person对象时,就会出现我的问题-它们都具有相同的名称。每次调用该方法时,都使用完全相同的整数将问题缩小到我的Person类randomName()
方法中。为什么要这样做?
class Person
{
public string Firstname { get; set; }
public string Surname { get; set; }
public string Gender { get; set; }
public void randomName()
{
string[] names = { ... }; // array of possible names
Random rand = new Random();
int a = rand.Next(names.Length - 1); // length of names array
string name = names[a]; // grab random name
Console.WriteLine(name);
}
}
class Main
{
public Main()
{
Person a = new Person();
a.randomName();
Person b = new Person();
b.randomName();
// These 2 Person objects have the exact same name every single time
}
}
编辑:已解决
我犯了一个错误的想法,认为我可以在几毫秒内创建多个Random
对象,认为这样做会创建完全不同的随机种子。我错了。