0

背景: 私はMVPを初めて使用し、Model View Presenterを使用して最初のwinformアプリケーションをコーディングし ています。質問: Windowsコントロール(TextBoxなど)のユーザー入力検証コードを作成する方法と、そのコードをどこに配置するかについてのベストプラクティスを探しています。モデルビュープレゼンターのデザインパターンを使用するwinformsアプリケーションですが、まだ混乱しています。フォームにいくつかのTextBoxコントロールがあり、Name、Phone、email、zipなどの入力を受け入れるとします。通常、validateName()、validatePhone()、validateEmail()、validateZip()などのさまざまなメソッドを呼び出します。これらの各メソッドは、ユーザーから提供された入力が空ではないことを確認する必要があります。

    if(txtName.Text.Length == 0)
   {
      errorMessage = "Name is required.";
         return false;
   }

   if(txtEmail.Text.Length == 0)
   {
      errorMessage = "e-mail address is required.";
         return false;
   }

これはコードの繰り返しのような匂いがするので、テキストがnullでないかどうかを確認するためのより良い効率的な方法が必要だと思います(すべてのテキストボックスコントロールをループすることによる可能性があります)。

したがって、私が考えているのは、CheckifTextEmply()、CheckifNumber()などの一般的なメソッドを含むCommonMethodsクラスを持ち、これらは一般的な機能であり、他のフォームの他のフォームの他のTextBoxコントロールで使用できるため、すべてのフォームでこのクラスを使用することです。事業。ここで、1。これが正しいアプローチであるかどうか、そうでない場合はこの問題にどのようにアプローチする必要があるかを教えてください。2.正しい場合、CommonMethodsクラス(コード)をモデルビュープレゼンターデザインのどこに配置する必要がありますか。

よろしく、ZB

4

1 に答える 1

0

少し古い投稿に見えます。引数として制御をとるメソッドを作成してから、それを検証してみてください。

bool validate(TextBox txt)
{
    return string.IsNUllOrEmpty(txt.Text);
}

また、params[]引数を取って複数のコントロールを取得し、それらを検証することもできます。

エラーメッセージについては、「必須フィールド」のメッセージに行くと「名前が必要」ではなく、作業が楽になります。ただし、そうでない場合は、controlとboolの辞書を作成してみてください。検証が失敗した場合は、falseを渡し、それに応じてアクションを実行してください。

答えがあまり説明的ではないことは知っていますが、今は少し忙しいので、説明するのに時間がかかりません。それが役立つかどうか教えてください。

于 2012-08-21T11:49:21.680 に答える