2016-11-04 9 views
2

連絡先(名前と番号)をリストに追加して後で表示するという小さな問題があります。私が選択したプロセスを追加するプロセスでは、ユーザーが追加する前にnumberの正しいフォーマットを追加したかどうかを確認するメソッドがあります。間違った形式の番号が追加された場合、コードは最初から詳細を入力するように求めます。私の問題は、ユーザーが間違った入力を追加した場合、つまり、最初からステップを戻すということです。基本的には、以下の方法を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

を返す入力された数値フィールド上のループへの最も簡単な方法を検証するための関数を作成します。

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

あなたは有効な入力がdo-whileブロックを使用している得るまでブール

bool isValidNumber = true; 
do{ 

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

    string NewNumber = Console.ReadLine(); 

    isValidNumber = isValidNumberCheck(NewNumber); 

}while(!isValidNumber); 
関連する問題