如何使用C#在asp.net中使用IF语句

本文关键字:IF 语句 net 何使用 asp | 更新日期: 2023-09-27 18:28:35

一旦发现所有这些条件都为真,我就试图发送电子邮件,但我的问题是,即使条件设置为假,它仍在发送电子邮件。例如,如果var3、var4或var5为"否",那么我不想发送电子邮件。以下是我正在检查的伪代码,它们都必须是真的才能发送电子邮件:

If(var1 is not blank And var2 is not set to “YES” And (either var3 OR var4 OR var5 are not set to “NO”)
Then 
{
Send_Email();
}

这是我当前的代码:

if var1 != (" ") && var2!= "YES" && var3!= ("NO") || var4!= ("NO") || var5!= ("NO") ))
{
sendEmail();
}

如何使用C#在asp.net中使用IF语句

尝试这个

if (var1 != " " && var2!= "YES" && (var3!= "NO" || var4!= "NO" || var5!= "NO"))
{
   sendEmail();
}

在实际代码中使用括号的方式与在伪代码中使用的方式相同:

if (var1 != (" ") && var2!= "YES" && (var3!= ("NO") || var4!= ("NO") || var5!= ("NO")))
{
    sendEmail();
}

这样做

if( var1 != " " && var2!= "YES" && var3!= "NO" && var4!= "NO" && var5!= "NO" )
{
  sendEmail();
}

if either var3 or var4 or var5 is “NO” then I don’t want to send email out.

看起来应该使用逻辑AND(&&),而使用逻辑OR(||

因此,如果var3var4var5ANY不是"NO"

var3!= ("NO") || var4!= ("NO") || var5!= ("NO") 

将它们全部更改为&&,这样您就可以使用

var1 != (" ") && var2!= "YES" && var3!= ("NO") && var4!= ("NO") && var5!= ("NO")


其他一些观察。。。

if语句的开头paren丢失,您应该将其添加到中

if (var1 != (" ") && var2!= "YES" && var3!= ("NO") || var4!= ("NO") || var5!= ("NO") ))
{
    sendEmail();
}

其次,很难判断你想要的情况。有了所有的||&&。你应该检查C#的操作顺序,以确保你做得对,如果你做得不对,就用括号括起来。

注意,&&||进行之前进行评估


最后,你还应该用调试器创建一个断点,并确保你的变量是你认为应该是的。记住,你所做的比较是区分大小写的。

if(var1 != (" ") && var2 ! = "YES" && (var3 != ("NO") || var4 != ("NO") || var5 != "NO")))

我猜你的括号错了。

现在,只有当三个变量都不是NO时,您的检查才会起作用。这可能更清楚:

if (var1 != (" ") && 
    var2!= "YES" && 
    !(var3 == ("NO") || var4 == ("NO") || var5 == ("NO") )  // Any of these being "NO" will fail the `if` check
   )
{
   sendEmail();
}

从逻辑上讲,它与相同

if (var1 != (" ") && 
    var2!= "YES" && 
    (var3 != ("NO") && var4 != ("NO") && var5 != ("NO") )
   )

由于您的条件非常大,因此没有什么可以阻止您编写多个小方法来增强可读性。

此外,您应该使用string.IsNullOrEmpty,而不是检查!= "&nbsp"

private bool IsVar1Blank(string var1)
{
    return string.IsNullOrWhiteSpace(var1);
}
private bool IsVar2SetToYes(string var2)
{
    return var2 == "YES";
}
private bool IsAnOtherVariableNotSetToNo(string var3, string var4, string var5)
{
    return var3 != ("NO") || var4 != ("NO") || var5 != ("NO");
}

你会得到这样的结果:

if (!IsVar1Blank(var1) && !IsVar2SetToYes(var2) && IsAnOtherVariableNotSetToNo(var3, var4, var5)
{
    sendEmail();
}

此外,为了始终确保您的代码能够工作,您应该认真考虑编写单元测试。