2016-11-19 2 views
0

Ich bin neu in Codierung Blabla gleiche alte Geschichte drucken aber ich habe diesen Code in:Warum kommt int nicht

{ 
    public static Random Random; 

    public int numberOne = 5; 
    public int numberTwo = 6; 


    public void Run() 
    { 
     numberOne = Random.Next(0,11); 
     numberTwo = Random.Next(0,6); 

     Console.WriteLine(numberOne +" + "+ numberTwo); 
     Console.ReadKey(true); 
    } 

numberOne und numberTwo sind beide öffentliche int ‚s. Warum funktioniert das nicht?

es kommt wieder mit einem Fehler, der besagt, dass

„System.NullReferenceException:. Objektverweis auf eine Instanz eines Objekts nicht festgelegt“

Was bedeutet das?

+0

Wo ist 'Random' definiert? Es gibt eine 'Random' Klasse, aber sie ist nicht statisch. Hast du vergessen, diese Eigenschaft zu initialisieren? –

+0

Yeah mein Schlechter, danke für die Klarstellung – deviousPriest

Antwort

1

Lassen Sie uns meine Kristallkugel verwenden: in dem Code in der Frage - da numberOne und numberTwo sind int - die Haupt Möglichkeit

System.NullReferenceException haben: Der Objektverweis nicht auf eine Instanz gesetzt von ein Objekt

ist das Fragment wie folgt aus:

// just a declaration without initialization 
public static Random Random; // <- the instance doesn't created 

... 

{ 
// Addressing Random which is null cause NullReferenceException 
numberOne = Random.Next(0,11); 
numberTwo = Random.Next(0,6); 

Console.WriteLine(numberOne +" + "+ numberTwo); 
Console.ReadKey(true); 
} 

Abhilfe: initialisieren Sie das Feld mit erstellt Random Instanz

// Now Random is initialized 
private static Random Random = new Random(); 
+0

ugh mein Schlechter Sie richtig, es funktioniert jetzt danke :) Ich vermisse lesen, was ich schrieb – deviousPriest

+0

@deviousPriest: Sie haben * nur erklärt *, aber nicht * initialisiert * 'Random' Feld mit irgendeiner 'zufälligen' Distanz. –

Verwandte Themen