Когда вы делаете это:
public Rectangle(Line enter)
{
// ...
Вы на самом деле создаете новый конструктор. Этот будет работать, но ваш конструктор по умолчанию не будет работать.
Полагаю, вы ожидаете, что конструктор по умолчанию public Rectangle()
также запустится. Вы можете легко сделать это, используя цепочку конструктора.
public Rectangle(Line enter) : this() // Call the default constructor as well
{
// ...
Это устранило бы ваше исключение нулевой ссылки и дало бы вам поведение, которое, я думаю, вы ожидаете.
Тем не менее, я бы также рекомендовал прочитать некоторые из советов в других статьях, особенно Tony's Pony's - они предоставляют несколько хороших советов, таких как использование свойств.