我有一个小问题声明,即将联系人(姓名和号码)添加到列表中,然后再显示它。在添加过程的过程中,我选择了以下方法,在添加之前检查用户是否添加了正确的数字格式。如果添加了错误的数字格式,代码将要求他从头开始输入详细信息。我的问题是,如果用户添加了错误的输入,他必须只退一步,即返回添加数字,而不是从开始。基本上我怎么能将下面的方法分成两个并使用它们。在这里,我在一个单独的课程中接受了联系。我是c#的初学者。如果有任何错误,请忽略。万分感谢
public void AddingContact()
{
Contact addContact = new Contact();
Console.WriteLine("Enter the name to be added:");
addContact.Name = Console.ReadLine();
Console.WriteLine("Enter the phone number to be added:");
string NewNumber = Console.ReadLine();
if(//So and so condition is true)
{
Add contact to list<contacts>
}
else
{
AddingContact();
}
}
答案 0 :(得分:1)
在获得有效输入之前循环字段的最简单方法是使用do-while
块。
public void AddingContact()
{
Contact addContact = new Contact();
Console.WriteLine("Enter the name to be added:");
addContact.Name = Console.ReadLine();
string NewNumber;
do
{
NewNumber = Console.ReadLine();
if (!IsValidPhoneNumber(NewNumber))
{
NewNumber = string.Empty;
}
} while (string.IsNullOrEmpty(NewNumber));
Contact.PhoneNumber = NewNumber; // Or whatever the phone number field is
ContactList.Add(Contact); // Or whatever the contact list is
}
验证电话号码的方法可以写成:
public bool IsValidPhoneNumber(string number)
{
return Regex.Matches(number, "^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$").Count == 1;
}
答案 1 :(得分:0)
创建函数以验证返回bool的输入数字
bool isValidNumber = true;
do{
Console.WriteLine("Enter the phone number to be added:");
string NewNumber = Console.ReadLine();
isValidNumber = isValidNumberCheck(NewNumber);
}while(!isValidNumber);