What’s New in Version 5.02
Released 11/22/2017
Current registered users: This program will install side by side with your previous installation and not overwrite it.
For new trial users: There is a 15 day trial period, 2000 line limitation per project converted.
Version 5.02 contains a number of improvements, thanks to the detailed feedback and interaction with many customers.
Conversion Improvements:
- Improved lambda function conversion accuracy.
- Added support for .Net Framework 4.7, which broke Tuple support in Visual Studio 2017 projects.
- Fixed compatibility issue converting Visual Studio 2003 projects on Windows 10.
- Improved accuracy of My.Resources conversions.
- Fixed issue converting async inline functions.
- Improved non-static initializer detection.
- Improved conversions of enums declared as a type other than integer, such as ushort.
- Improved detection of correct overloaded method to use in complex scenarios.
- Improved conversion of expressions referencing complex implicitly typed variables.
- Fixed error converting embedded case statements within a Select Case True block.
- Fixed issue converting Array.Empty(Of TypeName), where the () was added before the <TypeName> instead of after.
- Fixed issue of Array.Empty not being recognized as a static initializer and the assignment being moved to a class constructor.
- Improved conversion of generic arguments requiring (), like .OfType(Of TypeName). Parens are added in the initial conversion, and not relying on compiler error correction.
- Generated variables for With statements are now implicitly typed.
- Corrected conversions of MySettings.SettingName
- Fixed an issue converting a varible declared as type My.MySettings
- ChrW(intLiteral) is converted as (char) intLiteral instead of Strings.ChrW(intLiteral), to allow initial assignment to constants.
- Chr(intLiteral) is also converted as (char) intLiteral instead of \unnnn syntax, unless an initial assignment to a string constant is necessary.
- Improved accuracy of AddressOf conversions, when initialized in a variable declared with a generic type.
- Calling TryRemove method of ConcurrentDictionary.TryRemove is now passed with “out” instead of “ref” for the second argument.
- AddHandler/RemoveHandler doesn’t unnecessarily wrap routines with event handlers.
- Corrected problem converting “a is b” within a Case expression.
- Improved conversion of generics, prevent output of terms like “System.Func`2” when converting code.
- CStr is now converted as Convert.ToString() instead of .ToString(), to avoid possible null reference exceptions at runtime.
- Improved routine resolution. Fixed issue where a custom routines would be incorrectly resolved to like named routines in referenced assemblies.
- Short literals assigned to an object variable are now casted to short rather than being converted as an integer literal.
- ASP.Net projects: Improved tag parsing, language detection, correctly parsing server side comments, added support for ashx files
- Improved accuracy of converting Iterator functions.
- The converter now does not apply unnecessary type conversions to variables with implied types
- Improved accuracy of CS1061 compiler error correction.