Visual Basic Compiler and Language
Auto-implemented properties provide a shortened syntax that enables you to quickly specify a property of a class without having to write code to Get and Set the property.
Collection initializers provide a shortened syntax that enables you to create a collection and populate it with an initial set of values. Collection initializers are useful when you are creating a collection from a set of known values, for example, a list of menu options or categories.
Implicit Line Continuation
In many cases, implicit line continuation enables you to continue a statement on the next consecutive line without using the underscore character (_). For a list of all the cases in which you can omit an underscore character.
Multiline Lambda Expressions and Subroutines
Lambda expression support has been expanded to support subroutines in addition to multiline lambda functions and subroutines.
New Command-Line Option for Specifying a Language Version
The /langversion command-line option causes the compiler to accept only syntax that is valid in the specified version of Visual Basic.
Type Equivalence Support
You can now deploy an application that has embedded type information instead of type information that is imported from a Primary Interop Assembly (PIA). With embedded type information, your application can use types in a runtime without requiring a reference to the runtime assembly. If various versions of the runtime assembly are published, the application that contains the embedded type information can work with the various versions without having to be recompiled.
Covariance and Contravariance
Integrated Development Environment
You can use the Navigate To feature to search for a symbol or file in source code. You can search for keywords that are contained in a symbol by using Camel casing and underscore characters to divide the symbol into keywords.
When you click a symbol in source code, all instances of that symbol are highlighted in the document.
For many control structures, when you click a keyword, all of the keywords in the structure are highlighted. For instance, when you click If in an If…Then…Else construction, all instances of If, Then, ElseIf, Else, and End If in the construction are highlighted.
Generate From Usage
The Generate From Usage feature enables you to use classes and members before you define them. You can generate a stub for any class, constructor, method, property, field, or enum that you want to use but have not yet defined. You can generate new types and members without leaving your current location in code. This minimizes interruption to your workflow.
IntelliSense Suggestion Mode
IntelliSense now provides two alternatives for IntelliSense statement completion: completion mode and suggestion mode. Suggestion mode is used when classes and members are used before they are defined.