如果.....那么声明不能正常工作

时间:2012-10-03 07:13:18

标签: vb.net visual-studio-2010 text if-statement streamreader

大家早上好。

我有这个非常奇怪的问题。

以下是我的代码片段。

    Dim apantisi_pou_edwse As String
    Dim objreader As New StreamReader(TEST_NAME)
    Dim Answer1 As String = Split(objreader.ReadToEnd(), vbCrLf)(1) & vbCrLf

     If test1.RadioButton1.Checked = True Then
                apantisi_pou_edwse = test1.RadioButton1.Text.ToString()

            ElseIf test1.RadioButton2.Checked = True Then
                apantisi_pou_edwse = test1.RadioButton2.Text.ToString()
            End If
    If apantisi_pou_edwse = Answer1 Then
                RichTextBox1.BackColor = Color.Green
                RichTextBox1.Text = "Right answer!"
            ElseIf apantisi_pou_edwse <> Answer1 Then
                RichTextBox1.BackColor = Color.Red
                RichTextBox1.Text = "Sorry, wrong anwser"
            End If

那么它的作用是从文本文件中读取一行并将其分配给字符串变量Answer1。 然后,它获取相应单选按钮的Text属性,并将其分配给String变量apantisi_pou_edwse。 最后,它检查apantisi_pou_edwse = Aswer1。 问题是即使两者相等,if ... then语句也不会识别它们并且一直移动到elseif部分。 我错过了什么? 非常感谢

修改

If String.Compare(apantisi_pou_edwse, Answer1) = 0 Then
            RichTextBox1.BackColor = Color.Green
            RichTextBox1.Text = "Συγχαρητήρια απάντησες σωστά"
        Else
            RichTextBox1.BackColor = Color.Red
            RichTextBox1.Text = "Λυπάμαι απάντησες λάθος"
        End If

我用上面的那个改变了我的if语句,但它仍然不起作用:(

EDIT2 感谢Mortalus和Enigmativity的答案!他们解决了这个问题

2 个答案:

答案 0 :(得分:1)

您应该使用不同的方法来比较以下行的字符串:

If apantisi_pou_edwse = Answer1 Then 

此行比较apantisi_pou_edwseAnswer1变量

的引用

尝试使用。

String.Compare(apantisi_pou_edwse, Answer1 )

答案 1 :(得分:1)

尝试更改此行:

Dim Answer1 As String = Split(objreader.ReadToEnd(), vbCrLf)(1) & vbCrLf

到此:

Dim Answer1 As String = Split(objreader.ReadToEnd(), vbCrLf)(1)