Вы не можете поместить WriteLine () между вашим ReadLine (), потому что вы инициализируете свойства вашего нового Клиента.Однако вместо этого вы можете сделать это следующим образом:
public void CreateAccount()
{
Console.WriteLine("-=-=-=-=-=-=-=-=-=-=-=-=-=-");
Console.WriteLine("Create an Account");
Client createAccount = new Client("Create");
Console.WriteLine("Enter NameOfUser ");
createAccount.NameOfUser = Console.ReadLine();
Console.WriteLine("Enter SurnameOfUser ");
createAccount.SurnameOfUser = Console.ReadLine();
Console.WriteLine("Enter UserID ");
createAccount.UserID = Console.ReadLine();
Console.WriteLine("Enter UserEmail ");
createAccount.UserEmail = Console.ReadLine();
Console.WriteLine("Enter UserHomeAdd ");
createAccount.UserHomeAdd = Console.ReadLine();
Console.WriteLine("Enter UserMobileNumber ");
createAccount.UserMobileNumber = int.Parse(Console.ReadLine());
Console.WriteLine("Enter UsernameField ");
createAccount.UsernameField = Console.ReadLine();
Console.WriteLine("Enter PasswordField ");
createAccount.PasswordField = Console.ReadLine();
Console.WriteLine("Enter CoffePoints ");
createAccount.CoffePoints = int.Parse(Console.ReadLine());
List<Client> accountData = new List<Client>()
{
createAccount
};
Когда вы поймете, почему это работает, я бы порекомендовал сделать то, что предложила Исма (если вас учили, как создавать свои собственные методы).пока), чтобы сделать ваш код чище.Я написал это, чтобы помочь вам понять, почему то, что вы написали, не сработало.Сокращенные инициализаторы свойств, такие как:
Something s = new Something(){
Property1 = ReadLine(), //no semicolon here, this is all
Property2 = ReadLine() //one line of code in a=1,b=2,c=3 pattern
};
Не может иметь несколько строк кода, подобных этому:
Something s = new Something(){
Property1 = WriteLine("Blah"); ReadLine(); //can't put a semicolon here
Property2 = WriteLine("Blah"); ReadLine(); //it HAS to be a comma, because it
Property3 = WriteLine("Blah"); ReadLine(); //HAS to be a single line of code
};
Помните, что это не ключ возврата, который определяет новую строку кода в C #Точка с запятой.Это просто правило языка, что шаблон для установки свойств, подобных этому, состоит из одной строки, и только один оператор может появиться в правой части =
. Вы не должны использовать сокращенный способ (как указано выше).) или вы должны поместить все несколько строк кода, которые вы хотите использовать, в один метод, а затем вызвать этот метод (как предложила Исма)
Я также хотел бы отметить, что вы сказали, что хотите«писать сообщение после каждой readline» - обратите внимание, что ваша программа будет ждать, пока пользователь не введет что-либо, прежде чем она напечатает ваше сообщение.Способ Исмы (и выше) напечатать сообщение ПЕРЕД запросом readline, потому что это, как правило, то, что вы хотите сделать.
Если вы действительно хотите, чтобы это было после, то переместите их, чтобы они были после (но я думаю, что на самом деле вы можете только поблагодарить их за их вклад, и чрезмерно благодарные вещи раздражают ...) так что-то вроде этого (путь Исмы):
private static string ReadLine(string writeMessage)
{
string s = Console.ReadLine();
Console.WriteLine(writeMessage);
return s;
}
или мой путь:
public void CreateAccount()
{
Console.WriteLine("-=-=-=-=-=-=-=-=-=-=-=-=-=-");
Console.WriteLine("Create an Account");
Client createAccount = new Client("Create");
createAccount.NameOfUser = Console.ReadLine();
Console.WriteLine("Thanks for entering NameOfUser..");