インサイド C# プログラム (Visual C#)

更新 : 2007 年 11 月

C# プログラムの動作を理解するために、"Hello World!" プログラムを例に挙げて C# コードを 1 行ずつ説明します。このプログラムの独自のバージョンを作成する場合は、「方法 : C# コンソール アプリケーションを作成する」を参照し、同様の C# アプリケーションを記述、構築、および実行する手順を確認してください。

Hello World (C# 言語)

C# 言語では、クラスを使用してコードを編成し、パッケージ化します。実際、実行可能なすべての C# コードをクラスに含める必要があり、これは、"Hello World!" のような短いプログラムの場合でも同じです。"Hello World!" という文字列をコンソール ウィンドウに表示するプログラムを次に示します。

// A Hello World! program in C#
using System;
namespace HelloWorld
{
    class Hello 
    {
        static void Main() 
        {
            System.Console.WriteLine("Hello World!");

            // Keep the console window open in debug mode.
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();
        }
    }
}

ディレクティブと名前空間の使用

Visual C# Express Edition を使用してコンソール アプリケーションを作成すると、複数の .NET Framework 名前空間を示す using ディレクティブがコード エディタの最初の行に配置されます。名前空間とは、クラスと構造体をグループ化する手段であり、それぞれのスコープを制限して他のクラスや構造体と名前が競合しないようにします。Visual C# Express でプログラムを作成するときは、名前空間が自動的に作成されます。他の名前空間に属するクラスをプログラムで使用するには、using ディレクティブを使用してクラスを指定する必要があります。新しいアプリケーションを作成する際に最もよく使用される .NET Framework 名前空間は、既定で表示されます。クラス ライブラリの他の名前空間に属するクラスを使用する場合は、その名前空間の using ディレクティブをソース ファイルに追加する必要があります。名前空間の詳細については、「名前空間 (Visual C# Express)」を参照してください。

現在の using ディレクティブに示されている名前空間に含まれていないクラスや構造体を宣言すると、コード エディタは、そのクラスや構造体を含む名前空間を表示します。

コメント

using ステートメントの次の行には、コメントを記述します。コメントは、ユーザー自身や他のプログラマへのメモを記述するときに便利です。

// A Hello World! program in C#

「//」という文字があると、これ以降その行はコメントになります。次の例に示すように、テキスト ブロックの前後を「/*」と「*/」で囲んでコメントにすることもできます。

/* A "Hello World!" program in C#.
This program displays the string "Hello World!" on the screen. */

また、書式指定オプションを使用してコードに自動的にコメントを付けることもできます。詳細については、「方法 : コード行をコメント アウトする (C# Express)」を参照してください。

クラス

C# 言語では、クラスを使用してコードをパッケージ化します。すべての実行可能な C# コードはクラスに組み込まれている必要があります。詳細については、「クラス (Visual C# Express)」を参照してください。

Main()

  • C# プログラムには、Main メソッドが必要です。このメソッドの中で制御を開始して終了します。Main メソッドでは、オブジェクトを作成し、ほかのメソッドを実行します。Main メソッドは、クラスまたは構造体の中に存在する静的メソッドです。"Hello World!" の例では、Program クラスの中に存在しています。

Main メソッドは次のいずれかの方法で定義できます。

  • void 型を返すことができます。

    static void Main()
    {
        //...
    }
    
  • int 型を返すこともできます。

    static int Main()
    {
        //...
        return 0;
    }
    
  • 引数を受け取ることができます。これは、コマンド ライン ユーティリティを記述するときに便利です。

    static void Main(string[] args)
    {
        //...
    }
    

    または

    static int Main(string[] args)
    {
        //...
        return 0;
    }
    

Main メソッドのパラメータは文字列の配列で、プログラムの呼び出しに使用するコマンド ライン引数を表します。C++ とは異なり、この配列には実行可能 (.exe) ファイルの名前は含まれていないことに注意してください。詳細については、「Main() とコマンド ライン引数 (C# プログラミング ガイド)」を参照してください。

コンソール入出力

C# コンソール プログラムは、通常、.NET Framework Console クラスによって提供される入出力サービスを使用します。ステートメント Console.WriteLine("Hello, World!"); では、WriteLine メソッドを使用しています。このメソッドは、コマンド ライン ウィンドウに文字列パラメータを出力し、改行を付け加えます。別の入出力操作には、他の Console メソッドを使用します。Console クラスは、System 名前空間のメンバです。プログラムの先頭に using System; ステートメントが記述されていない場合には、System クラスを次のように指定する必要があります。

System.Console.WriteLine("Hello World!");

WriteLine メソッドは便利なメソッドです。コンソール アプリケーションの記述では、このメソッドを多用することがあります。

WriteLine は、文字列を表示できます。

Console.WriteLine("Hello World!");

WriteLine は、数値も表示できます。

int x = 42;
Console.WriteLine(x);

複数の項目を表示する必要がある場合には、{0} を使用して 1 番目の項目を表し、{1} を使用して 2 番目の項目を表すようにします。次に、例を示します。

int year = 1066;
string battle = "Battle of Hastings";
Console.WriteLine("The {0} took place in {1}.", battle, year);

出力は、次のようになります。

The Battle of Hastings took place in 1066.

参照

処理手順

方法 : C# コンソール アプリケーションを作成する

概念

C# 言語の概要