C#. Имеется несколько классов, при вызове одного из классов выдает ошибку, в чем проблема?

Рейтинг: 0Ответов: 0Опубликовано: 26.02.2023

System.NullReferenceException: "Object reference not set to an instance of an object."

Contact_Book.book.Letters.get[] было null.

namespace Contact_Book
{
    public class Person
    {
        private string surname;
        private string number;
        public string Surname
        {
            get { return surname; }
            set { surname = value; }
        }
        public string Number
        {
            get { return number; }
            set { number = value; }
        }

        public Person(string surname, string number)
        {
            Surname = surname; Number = number;
        }
    }

    public class Letter
    {
        private char pageletter;
        private Person[] people;
        public char Pageletter
        {
            get { return pageletter; }
            set { pageletter = value; }
        }
        public Person[] People
        {
            get { return people; }
            set { people = value; }
        }

        public Letter(char pageletter)
        {
            Pageletter = pageletter;
            People = new Person[1];
        }
    }
    public class book
    {
        private Letter[] letters;
        public Letter[] Letters
        {
            get { return letters; }
            set { letters = value; }
        }

        public book()
        {
            Letters = new Letter[3];
        }

        public void Print(string neededname)
        {
            int i = 0;
            
            
            
            char firstletter = Convert.ToChar(neededname.Substring(0, 1));
            while (i < Letters.Length)
            {
                if (Letters[i].Pageletter == firstletter)
                {
                    int j = 0;
                    while (i < Letters[i].People.Length)
                    {
                        if (Letters[i].People[j].Equals(neededname))
                        {
                            Console.WriteLine(neededname + "'s phone number is:");
                            Console.WriteLine(Letters[1].People[j].Number);
                        }
                    }
                }
                
            } 
            
        }

        static void Main()
        {

            Person p1 = new Person("Ivanov", "+7123456789");
            Person p2 = new Person("Petrov", "+7344235434");
            Person p3 = new Person("Whatever", "+734324324");

            Letter l1 = new Letter('I');
            Letter l2 = new Letter('P');
            Letter l3 = new Letter('W');
            l1.People[0] = p1;
            l2.People[0] = p2;
            l3.People[0] = p3;
            book phonebook = new book();
            phonebook.Print("Ivanov"); 
            
        }
    }    
}

Ответы

Ответов пока нет.