是的,我搜索了这种情况,但无法真正涉及的人来此......(别来砸我吧...)随机对象的引用
public Random Randomizer;
string[] Monsters = { "Rat", "Giant Rat", "Skeleton", "Infected" };
public string DisplayKilled()
{
if (PlayerOne.Level <= 5)
{
string randomMonster = Monsters[Randomizer.Next(1,2)]; // <= problemo
错误,我在得到“string randomMonster = Monsters [Randomizer.Next(1,2)];” :未将对象引用设置为对象的实例。我能做些什么来解决这个问题?
Oh,Derp user2129296 = new Derp(); – user2129296 2013-04-06 22:14:28
我的猜测是他创建了多个实例(共享种子),但只使用一个线程,在这种情况下,你应该说他应该使'randomizer'静态,如'private static readonly Random randomizer = new随机();'。我也认为他应该把它变成静态的。 (只有它是多线程的,并且如果每个线程都有其他线程没有使用的自己的实例,并且如果多个实例没有短时间创建,那么_then_最好保持该字段不是静态的。) – 2013-04-06 22:45:51
@JeppeStigNielsen:我认为把它变成静态是一件有风险的事情 - 现在使用单线程太容易了,但后来使用多线程并忘记了你有这个定时炸弹在等待...... – 2013-04-07 08:06:58