Features of Visual Basic .NET not found in C#
Variables can be declared using the WithEvents construct. This construct is available so that a programmer may select an object from the Class Name drop down list and then select a method from the Declarations drop down list to have the Method signature automatically inserted
Auto-wireup of events, VB.NET has the Handles syntax for events
Support for optional parameters (this will also be available in C# beginning in version 4.0[5]). This is typically used to provide easy interoperability with native code
Marshalling an object for multiple actions using an unqualified dot reference. This is done using the With ... End With structure
IsNumeric evaluates whether a string can be cast into a numeric value (the equivalent for C# requires using int.TryParse)
XML Literals
Inline date declarations by using #1/1/2000# syntax.
Features of C# not found in Visual Basic .NET
Allows blocks of unsafe code (like C++/CLI) via the unsafe keyword.
Partial Interfaces
Iterators and the yield keyword
Multi-line comments (note that the Visual Studio IDE supports multi-line commenting for Visual Basic .NET)
Static classes (Classes which cannot contain any non-static members, although VB's Modules are essentially sealed static classes with additional semantics)
Can use checked and unchecked contexts for fine-grained control of overflow/underflow checking
Auto-Implemented Properties (as of C# 3.0) (This will be available in Visual Basic .NET beginning in version 10.)
Implicitly Typed Arrays