如果是布尔条件的语句

时间:2015-03-24 13:57:46

标签: vb.net visual-studio if-statement boolean

我在Visual Studio中有一些非常简单的代码,无论出于什么原因,它都无法正常工作。我已经在if语句中将问题缩小到我的布尔条件。这是一个简化版本:

Dim bool As boolean

Protected Sub Button1Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
If bool = true Then
    bool = false
ElseIf bool = false Then
    bool = true
End If
Label1.Text = bool
End Sub

这是一个按钮点击事件。如果bool最初设置为true,当我点击它时,它会变为false,但是如果我再次点击它,那么" bool = false"声明未执行。

编辑:根据要求,完整的按钮点击处理程序已添加到上面的代码中。如上所述,这是一个asp.net网站。此代码的要点是,在单击按钮时,更改按钮单击时标题元素的样式。但是,这对问题没有影响,因为我暂时删除了该代码以减少任何潜在的问题,并留在上面的代码中。

2 个答案:

答案 0 :(得分:9)

看起来你正在做的就是切换布尔标志的值 假设它始终是truefalse,您只需反转值:

booleanVar = Not booleanVar

答案 1 :(得分:0)

您发布的代码显然应该可以自行运行。您的问题可能是bool的值未在不同的Web请求之间保存。您需要保存该值。尝试使用HttpContext的{​​{1}}属性,如下所示:

Session

有关详细信息,请参阅MSDN Session State Overview和关联的"如何"有关会话信息的文章here

修改: 为了使代码更具可读性并且不会使单击事件处理程序混乱,您可以将以下内容写入方法:

Dim bool as Boolean
If Session.Item("bool") Is Nothing Then
    Session("bool") = True
End If
bool = DirectCast(Session("bool"), Boolean)