Употреба на Console.Read(), Console.ReadLine и Console.ReadKey
Работя над Employee Data от домашното. По принцип мога да я направя, но има някои детайли, които ме човъркат и искам да си ги обясня. Ето кода:
Console.Write("Please enter employee's first name: ");
string firstName = Console.ReadLine();
Console.Write("Please enter employee's last name: ");
string lastName = Console.ReadLine();
Console.Write("Please enter employee's age: ");
byte age = byte.Parse(Console.ReadLine());
Console.Write("Please enter employee's gender(m/f): ");
string gender = Console.ReadLine();
Console.Write("\nPlease enter employee's personal ID number: ");
string personalIDNumber = Console.ReadLine();
Console.Write("Please enter employee's unique number: ");
string uniqueEmployeeNumber = Console.ReadLine();
...........print the info.......
Така написана, програмата работи, но искам да декларирам променливата gender като char. Console.Readline() не иска да ми я конвертира, дори с изрично кастване:
char gender = (char)Console.ReadLine();
Дава ми грешка, че не може да конвертира string в char.
Опитах с Console.Read, четох в книгата на Наков за функцията, но не я разбрах добре. Опитах следното:
char gender = Console.Read();
gender = Convert.ToChar(gender);
при този вариант ми дава правилна стойност на gender, но се получава следния бъг - не ми дава да въведа стойност за следващата променлива personalIDNumber и направо ме прехвърля на uniqueEmployeeNumber.
Може директно да се въведе Char с Console.ReadKey(), но тогава въвеждането става без натискане на Enter, което може да е объркващо за потребителя, понеже останалите променливи се въвеждат след натискане на Enter.
Домашното спокойно може да бъде написано, като gender се декларира като string, но съм се заинатил да намеря начин да го декларирам като char. Някой знае ли как да стане?
Благодаря предварително!
Благодаря за отговора. А има ли начин все пак директно да се въведе чар и да се потвърди с ентър или трябва да се минава през стринг?
Console.Read() ми остава пълна мъгла.