Hello, World を書く
 コマンドプロンプトに「Hello, World」を表示するアプリケーションを各種言語で作ってみようと 思います。次に示すプログラムは実行するとどれも同じ結果になります。

VB.NET
Imports System

Public Class HelloApp
  Public Shared Sub Main()
    Console.WriteLine("Hello World")
  End Sub
End Class

 まず Impotrs で System 名前空間を指定します。System は .NET Framework における基本的な 型のルート名前空間で、どんなアプリケーションを作るときにも必ず Imports するものだと 覚えておいてください。ここでは「HelloApp」クラスにエントリポイントである Main が含まれて います。VB.NET では Module に Main を含めることもできますが、ここでは C# との対比が 取りやすいようにクラスに入れました。「Shared」は共有コンストラクタです。簡単に説明すると Shared をつけると一番最初に一度だけ実行されます。つまりここでは HelloApp クラスが作られると 「Public Shared Sub Main」が呼ばれるということです。Console は System に含まれるクラスです。 コンソールアプリケーションの標準入出力、エラーのストリームを表します。Console メンバの WriteLine は指定したデータを標準出力に書き込み、続けて行終端記号(CrLf)を書き込むメソッド です。簡単に言うと、1行の文字列を出力して行末で改行するメソッドです。

C#
using System;

class HelloApp {
  public static void Main() {
    Console.WriteLine("Hello World");
  }
}

 まず using で System 名前空間を指定します。これは VB.NET の Imports と同じです。 C# では、すべてのコードがクラスのメソッドに含まれている必要があります。なので エントリポイントもクラスに含める必要があります。ここでエントリポイントは 「public static void Main 」です。エントリポイントには必ず「public」「static」を つけなければなりません。また、名前も「Main」である必要があります。 「Console.WriteLine」は VB.NET と同じく System 名前空間の Console クラスのメンバです。

 これらをコンパイルすると、両者ともに 3072 byte でバイナリ的にも完全に一致しています。 つまり、どちらのソースコードも全く同じ実行ファイルを生成したことになります。 ソースコードを見てもほぼ同じ形です。VB.NET は VB らしく Sub 〜 End Sub で成り立っており、 セミコロンも必要ありません。C# は C/C++ のように { 〜 } で成り立っており、セミコロンを つけます。実際にアプリケーションの機能である文字の出力部分を見てみると全く同じです。 「System.Console.WriteLine」を呼び出して「Hello World」を出力しています。 このように、.NET Framework を用いれば、VB.NET も C# も”同じようなもの”であり、 VB.NET は VB6 とは”違うもの”であるとわかります。