C#. Имеется несколько классов, при вызове одного из классов выдает ошибку, в чем проблема?
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");
}
}
}
Источник: Stack Overflow на русском