2017-04-05 1 views
0

Je suis vraiment un débutant en C# et j'ai rencontré ce problème que je ne peux pas résoudre même après avoir passé des heures à chercher sur Internet. Je ne comprends pas pourquoi l'objet de pile Grades est toujours nul et chaque fois que j'exécute l'application, il lève une exception de "System.NullReferenceException". Et quand je passe la souris sur Grades, il est dit "field 'Student.Grades' n'est jamais assigné et aura toujours sa valeur par défaut". Je ne peux pas non plus utiliser "{get; set;}" pour accéder à cette propriété. Alors peut-on me dire pourquoi? Un grand merci !!! (Première question demandant le débordement de la pile désolé pour la mauvaise mise en forme)C# ne peut pas mettre en place une pile <T> en tant que propriété dans la classe

class Student : Person 
{ 

    public int studentID { get; set; } 
    public static int nextID; 
    public Stack<int> Grades; 

    public Student(string firstName, string lastName, DateTime birthDate, 
      string address1, string address2, string city, string state, 
      string zip, string country) 
    { 
     FirstName = firstName; 
     LastName = lastName; 
     BirthDate = birthDate; 
     Address1 = address1; 
     Address2 = address2; 
     City = city; 
     State = state; 
     Zip = zip; 
     Country = country; 
     //track the number of students enrolled 
     studentID = nextID; 
     nextID++; 
    } 
} 

Répondre

0

Dans votre constructeur, vous pouvez ajouter

this.Grades = new Stack();

code.

Les classes de C# ont une valeur par défaut nulle.