Вы должны использовать:
age = Convert.ToInt32(userAge);
И:
Console.WriteLine($"Your name is {firstname} {lastname} and your age is {age}");
$ разрешает интерполяцию строки, чтобы поместить переменные между {} в строке.
Вы можете использоватьTryParse вместо Convert, которое вызывает исключение, если не введено число или оно не помещается в int, на uint, потому что age должен быть положительным:
uint age; // instead of int
uint.TryParse(userAge, out age);
Так что в случае ошибки, ageравно 0.
Вы также можете проверить результат этого метода, который является ложным в случае ошибки, например:
do
{
Console.Write("please enter your age - ");
userAge = Console.ReadLine();
}
while ( !uint.TryParse(userAge, out age) )