我在C#中有以下代码:
如您所见,我首先检查用户上传的证书是否有效。必须始终执行这些检查。
之后,我正在检查用户输入的IP地址和端口号是否有效。但是,不同之处在于,如果用户在ip地址和端口号字段中输入了一些文本,则应执行这些检查。如果用户在两个字段中都没有输入任何内容,则应跳过检查。
此外,如果其中任何一个字段中包含文本,则错误消息应建议用户在两个字段中输入文本。
如当前代码所示,如果用户在ip地址或端口号字段中输入文本而不是两者都输入文本,则不会显示错误消息。我该怎么解决这个问题呢?
答案 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)
完全无关紧要,只是掩盖了真正的问题。