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 回答