C# - 控制If语句中的程序流程

时间:2013-06-18 09:54:20

标签: c# if-statement flow

我在C#中有以下代码:

如您所见,我首先检查用户上传的证书是否有效。必须始终执行这些检查。

之后,我正在检查用户输入的IP地址和端口号是否有效。但是,不同之处在于,如果用户在ip地址和端口号字段中输入了一些文本,则应执行这些检查。如果用户在两个字段中都没有输入任何内容,则应跳过检查。

此外,如果其中任何一个字段中包含文本,则错误消息应建议用户在两个字段中输入文本。

如当前代码所示,如​​果用户在ip地址或端口号字段中输入文本而不是两者都输入文本,则不会显示错误消息。我该怎么解决这个问题呢?

1 个答案:

答案 0 :(得分: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)

完全无关紧要,只是掩盖了真正的问题。