>>>
>>>BTW what's your 'favorite online C#-to-VB converter' ?
>>>>>
>>>>>I have two of them that I like:
>>>>>
>>>>>http://www.carlosag.net/Tools/CodeTranslator/ - translates in both directions
>>>>>http://authors.aspalliance.com/aldotnet/examples/translate.aspx - C#-to-VB only
>>>>.
>>>>Thx. Never looked for anything like that before. I have no trouble translated VB -> C# - it's only the reverse that give me pause.
>>>>Both were interesting. Both tripped up on:int i =25;
>>>>int i2 = i < 25 ? 1 : 0;
(g)>>>
>>>Yeah, in the past I've seen one or the other give wrong results, but for the most part they're pretty good. The first converter really messed up your example code, but the second converter was close enough so that you'd at least know what the C# code meant (if you were a VB developer and didn't know C# at all)
>>>
>>>
>>>Dim i2 As Integer = (If i < 25 Then 1 Else 0)
>>>'ToDo: Unsupported feature: conditional (?) operator.
>>>
>>>
>>
>>Duh. The second result is actually spot on. I think I must have just mis-typed the C# code that I submitted for that one :-{
>>I was just wondereing, purely out of curiousity, how I'd go about writing a similar translartor.....
>
>I understand there are some decompilers for .Net, so one brute-force approach would be to compile CodeInLang1, and use a decompiler and specify OutputInLang2.
>
>Whether you write a translator or use the approach above, I'm thinking a basic sanity check would be to compile CodeInLang1 and CodeInLang2 and see if the results are identical.
I immediately thought of compiling and then decompiling the MSIL so the only challenge was writing code using reflection to achieve this. For a practical solution I guess Reflector will already do that for you which led me to a bunch of add-ins that sound interesting:http://reflectoraddins.codeplex.com/
Three or four options there that would perform the final step - but a lot of other interesting but non-related add-ins as well.....