次の方法で共有


Visual C# での Hello World

Visual C# では Hello World がどのように記述されるかを次のコードに示します。

リスト 1. Visual C# での Hello World (HelloCS.cs)

// Allow easy reference to the System namespace classes.
using System;

// This class exists only to house the entry point.
class MainApp {
   // The static method, Main, is the application's entry point.
   public static void Main() {
      // Write text to the console.
      Console.WriteLine("Hello World using C#!");
   }
}

このコードは、C++ マネージ拡張で記述されたコードよりも少し長くなっています。コア ライブラリにアクセスするための構文は新しく、この構文では、名前空間が格納されているファイルの名前ではなく、名前空間自体を指定します。

using System;

最も大きな違いは、クラスの指定方法です。

class MainApp {

Visual C# では、すべてのコードがクラスのメソッドに含まれていることが必要です。したがって、エントリ ポイント コードを含めるには、最初にクラスを作成しておく必要があります。ここでは、クラスの名前は重要ではありません。次に、エントリ ポイント自体を指定します。

public static void Main () {

エントリ ポイントは必ず Main という名前で呼び出す必要があります。また、エントリ ポイントは、publicstatic の両方でマークする必要があります。また、C++ マネージ拡張の例と同様に、エントリ ポイントには引数が指定されておらず、戻り値もありません。ただし、より高度なプログラムに対しては異なるシグネチャを指定できます。

次の行は以下のとおりです。

Console.WriteLine("Hello World using C#!");      

ここでも、この行はランタイム Console 型を使用して文字列を書き込みます。しかし、Visual C# では、ピリオド (.) を使用してスコープを示すことができます。また、C# では、すべての文字列が Unicode であるため、文字列の前に L を入れる必要もありません。

Build.bat ファイルには、このプログラムをビルドするために必要な次の 1 行が含まれています。

csc.exe /debug+ /out:.\HelloCS.exe helloCS.cs

このような明らかに単純な例では、コンパイラ対象のファイル以外の情報を指定する必要はありません。特に C# では、C++ で必要である追加のリンクの手順は行われません。

C:\...\HelloWorld\cs>build
C:\...\HelloWorld\cs>csc.exe /debug+ /out:.\HelloCS.exe hellocs.cs
Microsoft (R) Visual C# Compiler Version ...[CLR version...]
Copyright (C) Microsoft Corp 2000-2001. All rights reserved.

C# コンパイラの既定の出力は同じ名前の実行可能ファイルです。このプログラムを実行すると、次のような出力が生成されます。

C:\...\HelloWorld\cs>hellocs
Hello World using Visual C#!

参照

Visual Basic での Hello World | サンプル .NET コンポーネントの作成 | 単純なコンポーネントのクライアント | 開発チュートリアルのまとめ | 付録 A: 名前空間を検索するためのツール