.Net Else Statement

本文关键字:Statement Else Net | 更新日期: 2023-09-27 17:59:46

protected void Button1_Click(object sender, EventArgs e)
{
    if (username.Text == "test" && password.Text == "test")
        Response.Cookies ["TheCookie"]["Username"] = username.Text;
        Response.Redirect("loggedIn.aspx");
    else
        Label1.Text = "Invalid Username and/or Password.";
}

以上是我正在努力实现的一个功能。由于某些原因,此处的else语句未被接受。我不知道为什么。如有任何帮助,我们将不胜感激。

.Net Else Statement

if (username.Text == "test" && password.Text == "test")
{
    Response.Cookies ["TheCookie"]["Username"] = username.Text;
    Response.Redirect("loggedIn.aspx");
}
else
    Label1.Text = "Invalid Username and/or Password.";

用大括号将其括起来,否则它将只使用下一个直接行(语句(作为条件的一部分。

即使对于单线if/else,这样做也是一种很好的做法,因为这样可以更容易地进行维护。

else
{
    Label1.Text = "Invalid Username and/or Password.";
}

if else(C#参考(-MSDN

then语句和else语句都可以由单个语句或多个用大括号括起来的语句({}(。对于单个语句,大括号是可选的,但是建议。

if语句的then(true(部分有多个语句。虽然您使用了缩进,但编译器不会考虑这些空格/缩进。由于您没有指定{}来定义if语句的作用域,因此if作用域只考虑一条语句。因此出现了错误。

您可以通过使用{}引入scope来解决此问题。还建议对单个语句使用{}(显式定义作用域(,因为它使代码更容易理解,也不容易出错。您的代码应该是:

protected void Button1_Click(object sender, EventArgs e)
{
    if (username.Text == "test" && password.Text == "test")
    {
        Response.Cookies["TheCookie"]["Username"] = username.Text;
        Response.Redirect("loggedIn.aspx");
    }
    else
    {
        Label1.Text = "Invalid Username and/or Password.";
    }
}