C＃与Visual Basic .NET的比较

语言历史

C#和VB.NET各自有其不同的历史，在语法上也有很大的差异。C#语法的基础是派生自1970年代丹尼斯·里奇在贝尔实验室（AT&T）发展的C语言，其中也包括了完全面向对象的C++，许多Java语言语法的基础也是来自C++语言，这也是C#和Java有许多相近之处的原因。
VB.NET是来自1960年代的BASIC语言，是“Beginner's All-purpose Symbolic Instruction Code”的缩写，一开始BASIC在学校中教授，而且如它的名字所述的，被视为是一个基础的编程语言。1970年代微计算机的制造商将BASIC用来做计算机系统的编程语言，以及有简单输入输出控制的半操作系统。1980年代微软也开始使用将一此语言，1990年代发展为Visual basic，用在window系统的快速应用程序开发，Visual basic打败了当时像PowerBuilder等快速应用程序开发工具。虽然Visual Basic如此的成功，但在2000年代初期微软提出.NET框架及对应的Visual Studio开发平台，而Visual Basic也在第六版（VB6）画下句点。

语言比较

虽然C#和VB.NET在语法上有相当的不同，但因为都是微软开发的.NET框架下的编程语言，而且是由同一个开发团队进行开发、管理及维护，因此会有不少的共通点。C#和VB.NET会编译为同一种中介语言，在同一种.NET框架下的运行期库下运行。C#和VB.NET在语言结构上有一些差异，差异主要都是语法上的差异，但不要使用微软提供，方便和VB6转换的兼容性库，几乎每一个VB.NET中的指令都有对应的C#的指令，反之亦然。为了延伸其机能，两种语言也参考同一个.NET框架下的基类。因此大多数用其中一个语言写的程序可以用语法转换程序转换为另一种语言，只有少数例外，而已有许多开源软件及商业软件有这类的功能。

语言特性

从技术角度来看，C＃和VB.NET之间的大部分差异都是语法糖。也就是说，大多数特性都存在于两种语言，但有些任务在一种语言中比另一种语言更容易完成。

两种语言的HelloWorld

以下是两种语言的HelloWorld：
VB.NET
Imports SystemModule HelloWorldApp
    ' VB.NET Console 主程序
    Sub Main()
        ' 輸出 Hello World! 至 Console
        Console.WriteLine("Hello World!")
        ' ReadKey 用來暫停避免直接關閉Console 視窗
        Console.ReadKey()
    End SubEnd Module
C#
using System;namespace HelloWorldApp{
    class Program
    {
        // C# Console 主程序
        static void Main(string[] args)
        {
            // 輸出 Hello World! 至 Console
            Console.WriteLine("Hello World");
            // ReadKey 用來暫停避免直接關閉Console 視窗
            Console.ReadKey();
        }
    }}