2016-11-04 199 views
2

我有一個小問題添加聯繫人(姓名和號碼)到列表的問題,並在稍後顯示它。在添加流程的過程中,我選擇了以下方法,用於在添加之前檢查用戶是否添加了正確的數字格式。如果添加了錯誤的數字格式,代碼會要求他從頭開始輸入詳細信息。我的問題是,如果用戶添加了錯誤的輸入,他必須只退一步,即回到添加數字,而不是從頭開始。基本上我怎麼可以將下面的方法分成兩個並使用它們。在這裏我已經在一個單獨的課程中接觸了聯繫我是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

你所說的「錯誤輸入」呢?有很多方法可以編寫電話號碼。你只接受一種特定格式,還是隻是檢查輸入是否可能*是電話號碼? – Abion47

+0

'^ \(?([0-9] {3})\)?[ - 。 ]([0-9] {3})[? - 。 ]?([0-9] {4})$'我正在檢查此格式@ Abion47 –

回答

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; 
} 
+0

感謝您的答案。幫了很多! –

0

創建函數返回布爾

bool isValidNumber = true; 
do{ 

    Console.WriteLine("Enter the phone number to be added:"); 

    string NewNumber = Console.ReadLine(); 

    isValidNumber = isValidNumberCheck(NewNumber); 

}while(!isValidNumber);