Это в значительной степени "это".
Вы используете консоль, поэтому вы должны использовать цикл do.. while для ввода, и вы используете его по-своему.
Ивы используете foreach для печати.
Я не вижу ни одной строки, которую вы можете сохранить.
Всего один мелкий придираИмена полей с подчеркиванием: обычно они зарезервированы для непубличных переменных.При использовании свойств вам необходимо поле поддержки.И принципиально важно, чтобы вы обращались к полю поддержки в любом коде класса (кроме обработчиков свойств)!Помещение подчеркивания перед вспомогательными полями гарантирует, что между свойством «Имя» и полем «_Name» не будет путаницы.
Действительно, многие предпочитают просто использовать свойства автоматической реализации, поэтому они не могут случайно получить доступ квспомогательное поле.Или зайдя так далеко, чтобы скрыть значения полей в словаре.Просто чтобы исключить возможность случайного использования полей.
В вашем случае поля являются общедоступными, поэтому подчеркивание не имеет смысла.
Редактировать: Вы можете сохранить только одну строку!
Console.Write(person._name +" ");
Console.WriteLine(person._lastname);
можно сжать до:
Console.WriteLine(person._name + " " + person._lastname);
Однако я бы не советовал этого делать.Наличие двух обращений к полям или свойствам в одной строке может затруднить отладку (см. «Ссылка не установлена на экземпляр объекта»).И есть вероятность, что JiT-компилятор заметит это и все равно оптимизирует его вне отладочных сборок.