var i=1; var j="1"; if(i==j)alert("Loose typing ahoy!");
Everything’s fine and you get an alert. And if you go:
var thingArray = new Array(); thingArray[i]="Loose typing still ahoy!" alert(thingArray[j]);
You get the same thing.
Try something similar in C#, and you’ll get a compile error:
int i = 1; string j="1"; if(i==j)Response.Write("Oooooh badness");
So it will never work.
In VB.Net, though, we’re in a funny middle-ground where things are sometimes the same, and sometimes different:
Dim i as Intger = 1 Dim j as String = "1" If i = j Then Response.Write("They're the same here.") End If
Dim thingArray as new ArrayList thingArray.Add(i) If thingArray.Contains(j) Then Response.Write("They're still the same...") End If
will never write anything out. Because despite the fact that 1 = “1”, an ArrayList that contains 1 doesn’t also contain “1” because they’re different…
It’s a cop-out of a language, I say.