by Michael S. Kaplan, published on 2006/04/11 03:11 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2006/04/11/572838.aspx
Ok, we start with the following code -- just paste it into Notepad, and save in UTF-8 or Unicode encoding with a nice generic name like Module1.vb:
Console.WriteLine("Schrödinger's cat is not dead.")
Console.WriteLine("Schrödinger's cat is dead.")
Compile it in with VBC (1.0, 1.1, or 2.0):
Then run the code:
Schrödinger's cat is dead.
The appearance here is that VB is not only allowing function names that vary in no way other than case to co-exist, but also that will appear to be calling the wrong function sometimes!
Hmmm.... how did that happen?
I am sure regular readers will know what I did here; it's a bit like that Normalization as obfuscation in C# post, but with the case variation thrown in.
So now VB gets to not only be weirdly obfuscated, it also has lost its case insensitivity!
Doesn't this seem worthy of a fix? Even if it requires a different compiler setting for backcompat with the people crazy enough to code this way, for the sanity of those who didn't want case sensitive VB it seems like a good idea....
(I realize I have thrown down the gauntlet to the VB team to try to get this issue fixed now!)
This post brought to you by "Ö" (U+00d6, a.k.a. LATIN CAPITAL LETTER O WITH DIAERESIS)
(A character that is proud to not be part of the dyslexic heritage that will confuse people between U+00f6 and U+006f!)
SE on 26 Aug 2012 2:22 PM:
go to newer or older post, or back to index or month or day