0

私はC#で次のコードを持っています:

ご覧のとおり、最初にユーザーがアップロードした証明書が有効かどうかを確認しています。これらのチェックは常に実行する必要があります。

その後、ユーザーが入力した IP アドレスとポート番号が有効かどうかを確認しています。ただし、違いは、ユーザーが IP アドレスおよびポート番号フィールドに何らかのテキストを入力した場合に、これらのチェックを実行する必要があることです。ユーザーが両方のフィールドに何も入力しなかった場合、チェックはスキップされます。

さらに、いずれかのフィールドにテキストが含まれている場合は、両方のフィールドにテキストを入力するようにエラー メッセージが表示されます。

現在のコードでは、ユーザーが IP アドレスまたはポート番号フィールドのいずれかにテキストを入力しても、両方ではなく、エラー メッセージは表示されません。どうすればこれを解決できますか?

4

1 に答える 1

1

以下は回答そのものではなく、自分自身の質問に回答するためのより良い立場に立つ方法についての一般的なアドバイスです。

上記は、非常に理解しにくいコーディング スタイルです。ネストされたコード ブロックが多すぎて、ロジックを簡単にたどることができません。

この種のコードを記述する「より良い」方法は、次のように return ステートメントを自由に使用することです。

if (FileUpload_Certificate.HasFile == false)
{
    Label_Error.Visible = true;
    Label_Error.Text = "Error Message: Please upload your digital certificate";
    return;
}

if (val.isCertificate(FileUpload_Certificate) == false)
{
    Label_Error.Visible = true;
    Label_Error.Text = "Error Message: The file uploaded is not a certificate!";
    return;
}

ネスティングがこのように単純化されると、おそらく実際の問題を解決するのがはるかに簡単になります。

IT はまた、問題のある実際の領域の分離を容易にします。この場合、この行より前のすべてのコード。

if (val.EmptyString(ip_address) == false)

はまったく無関係であり、実際の問題を曇らせるだけです。

于 2013-06-18T10:16:45.460 に答える