libro
www.tuyano.com
初心者のためのC#プログラミング入門

名前空間・クラス・メソッド (3/3)

作成:2013-08-03 08:54
更新:2013-08-03 08:54

■Mainメソッドについて

サンプルではProgramクラスにMainメソッドというものが用意されていましたが、このMainというメソッドは、実は特別な役割を持つものなのです。これは、アプリケーションが起動したとき、最初に呼び出され実行されるメソッドなのです。これは一般に「エントリーポイント」と呼ばれます。

C#では、プログラムを実行すると、その中にあるクラスからMainメソッドを検索し、それを実行します。このMainメソッドがない場合、プログラムは実行できないのです。

このMainメソッドは、必ず以下のように定義されている必要があります。


・Mainメソッドの基本形
public static void Main(string[] args)
{
    ……実行する処理……
}

public――これは「公的な(公開された)」ということを示すものです。「このメソッドはどこからでも呼び出せますよ」ということを示しています。

static――これは「静的な」ということを示します。クラスというのは、それをもとにオブジェクトというのを作って利用するのですが、このstaticなメソッドは、クラスから直接呼び出して使える、ということを示します。

void――これはメソッドの返値のところで出てきました。「何も値を返さない」ということを示します。

Main――これがメソッドの名前です。

(string[] args)――これは引数の指定です。argsという名前のstring配列(テキストの配列)が引数として渡されることを示します。

これらは、すべてこの通りに用意しないといけません(まぁ、引数のargsという変数名は変えても大丈夫ですが)。ちょっとでも違っていると、「エントリーポイントのMainメソッドじゃないぞ」と判断されてしまうので注意ください。


※引数のargsについて

このMainは、決まった形で書くだけなのであまり応用できるような機能もないのですが、一つ覚ええておきたいのは「引数のargs」です。

このargsには、このプログラムを実行する際につけられた引数がまとめて保管されています。コマンドプロンプトからコマンドを実行する際、コマンドの後にテキストをつけて送ることができます(これが引数)。こうして付けられたものが、そのままstring配列としてMainメソッドのargsに渡されるのです。

実際に、このargsを使った例を下にあげておきます。コンパイルしたら、まず「MyApp.exe」とだけ実行してください(作成されたアプリ名が「MyApp.exe」の場合)。単に「ども。」とだけ表示されます。

それを確認したら、「MyApp.exe Taro」というように実行してみましょう。今度は、「こんにちは、Taroさん。」と表示されます。引数のTaroMainargs配列に渡され、このargs[0]の値を使ってメッセージを表示していたのですね。

ここでは、ifを使って「args.Length」というものをチェックしていますが、これはargsに保管されている値の数を調べるものです。引数が何もなければ、ここには何も値が保管されないのでargs.Lengthはゼロになります。1つでも引数があれば、ゼロ以上の値となります。これを利用して、引数が付いているかどうかをチェックし、それに応じてメッセージを表示していたのですね。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

using System;

namespace myapp
{
    class Program
    {
        public static void Main(string[] args)
        {
            if (args.Length > 0)
            {
                Console.WriteLine("こんにちは、{0}さん。", args[0]);
            }
            else
            {
                Console.WriteLine("ども。");
            }
        }
    }
}
※関連コンテンツ

「初心者のためのC#プログラミング入門」に戻る