Visual Studio 2019 is in General Availability and released today
Microsoft released Visual Studio 2019 today and it is available for download.
Here are our favorite features you could check out:
General Debugging and Diagnostics
- Nullable reference types: When the feature is turned on (for example, with #nullable enable or at the project-level with <NullableContextOptions>enable</NullableContextOptions>), reference types are treated as nullable if annotated with ?, and as non-nullable otherwise. The compiler then analyzes where null values flow and warns about likely unsafe usages.
- switch expressions: Offers switch-like semantics in an expression context.
- Recursive pattern matching: New patterns allow testing fields/properties and positional elements (from tuples or deconstruction).
- Support for Range and Index types being used in CoreFX for slicing, including the x..y literal syntax for ranges.
- Asynchronous streams represented by IAsyncEnumerable<T> can be enumerated asynchronously with await foreach and can be produced with async IAsyncEnumerable<T> iterator methods.
- using declarations: Dispose at the end of the current block, without increasing the level of nesting. ref structs can be disposed by implementing a public Dispose() method.
- static local functions: Local functions marked with static cannot reference this or variables in the enclosing functions.
- Local functions and lambdas can now declare parameters and locals that shadow names of variables of the enclosing functions.
- Null-coalescing assignment: x ??= y; only assigns y to x if x was null.
Check out the MASSIVE release notes here: https://docs.microsoft.com/en-us/visualstudio/releases/2019/release-notes#GA
And you can find a "What's new" video here: https://devblogs.microsoft.com/visualstudio/making-every-developer-more-productive-with-visual-studio-2019/