Conversão implícita VBScript na instrução IF diferente da variável para literais?
No momento, estamos tendo um problema devido à conversão implícita em uma instrução IF no VBScript (Classic ASP) que não faz a conversão implícita da mesma maneira ao lidar com uma variável ou um literal. Alguém pode me explicar esse comportamento, por que o VBScript age dessa maneira?
Aqui está uma amostra do que quero dizer:
Const c_test = 3
Dim iId : iId = 3
Dim iTestStr : iTestStr = "3"
If iId = iTestStr Then
Response.Write("Long variable = String variable : Equal")
Else
Response.Write("Long variable = String variable : Not Equal")
End If
Response.Write("<br/>")
If c_test = iTestStr Then
Response.Write("Long constant = String variable : Equal")
Else
Response.Write("Long constant = String variable : Not Equal")
End If
Response.Write("<br/>")
If c_test = iId Then
Response.Write("Long constant = Long variable : Equal")
Else
Response.Write("Long constant = Long variable : Not Equal")
End If
Response.Write("<br/>")
If iId = "3" Then
Response.Write("Long variable = String literal : Equal")
Else
Response.Write("Long variable = String literal : Not Equal")
End If
Response.Write("<br/>")
If c_test = "3" Then
Response.Write("Long constant = String literal : Equal")
Else
Response.Write("Long constant = String literal : Not Equal")
End If
Quais resultados:
Variável longa = Variável de sequência: Diferente
Constante longa = Variável de sequência: Diferente
Constante longa = Variável longa: Igual
Variável longa = String literal: Igual
Constante longa = String literal: Igual
O que é bastante confuso