Условие if истинно, но поток программы переходит к другой части в vb

У меня возникли проблемы с куском кода в vb.net. При этом поток управления переходит в условие else, хотя значение if равно true.

Я использовал это в качестве ввода: WD-WXK0AC9T7316код:

Private Function EncryptHDKey(ByVal Hd_no As String) As String

       Dim EncryptedString As String = ""

        For Each ch As Char In Hd_no
            If ((ch >= "0" And ch <= "9") Or (ch >= "a" And ch <= "z") Or (ch >= "A" And ch <= "Z")) Then
                If (Convert.ToChar((Convert.ToInt16(ch) + 4)) > "9" And ch <= "9") Then
                    EncryptedString = EncryptedString + Convert.ToChar((Convert.ToInt16(ch) + 3) - Convert.ToInt16("9"))
                Else
                    If (Convert.ToChar((Convert.ToInt16(ch) + 4)) > "z" And ch <= "z") Then
                        EncryptedString = EncryptedString + Convert.ToChar(Microsoft.VisualBasic.Asc("a") + (Convert.ToInt16(ch) + 3) - Microsoft.VisualBasic.Asc("z"))
                    Else
                        If (Convert.ToChar(Convert.ToInt16(ch) + 4) > "Z" And ch <= "Z") Then
                            EncryptedString = EncryptedString + Convert.ToChar(Microsoft.VisualBasic.Asc("A") + (Convert.ToInt16(ch) + 3) - Microsoft.VisualBasic.Asc("Z"))
                        Else
                            EncryptedString = EncryptedString + Convert.ToChar(Convert.ToInt16(ch) + 4)
                        End If
                    End If
                End If
            Else
                EncryptedString = EncryptedString + ch
            End If
        Next
        Return (EncryptedString)
    End Function

У меня пока нет прав на загрузку скриншота, поэтому я загрузил скриншот в этом месте. WWW (точка)freeimagehosting(точка) сети /y6ea3

1 ответ

Это может быть далеко, но так как вы сказали, что конвертируете старый проект в VS2010, стоит попробовать.

Возможно, проблема не в исходном коде, а в самой среде. Вполне возможно, что кодировка символов для более старого проекта отличается от кодировки, установленной в VS2010. Я говорю это потому, что кодировка по умолчанию в VS2005 отличалась от кодировки, установленной в VS2010. В криптологии такие мелочи, как метаданные проекта, также играют свою роль, которую многие обычно упускают из виду, считая, что с их исходным кодом что-то не так.

Поэтому убедитесь, что конфигурация среды проекта одинакова. Специально кодирование (как указано @varocarbas). Поиграйте с этим некоторое время.

Другие вопросы по тегам