是的,我搜索了這種情況,但無法真正涉及的人來此......(別來砸我吧...)隨機對象的引用
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