メソッドの構文を理解する

完了

Console.WriteLine()random.Next()など、いくつかの方法に既に慣れている場合があります。 これらのメソッドを使用してタスクを簡略化し、コードをより簡単にビルドできる方法を理解しているかもしれません。 このユニットでは、独自のメソッドを作成する方法について説明します。

メソッドのしくみ

メソッドを開発するプロセスは、メソッド シグネチャの作成から始まります。 メソッド シグネチャは、メソッドの戻り値の型、名前、および入力パラメーターを宣言します。 たとえば、次のようなメソッド シグネチャについて考えてみます。

void SayHello();

メソッド名は SayHello。 戻り値の型は void。つまり、メソッドはデータを返しません。 ただし、メソッドは、 boolintdouble、配列など、任意のデータ型の値を返すことができます。 メソッド パラメーターがある場合は、かっこ ()に含める必要があります。 メソッドは、任意のデータ型の複数のパラメーターを受け取ることができます。 この例では、メソッドにはパラメーターがありません。

メソッドを実行する前に、定義を追加する必要があります。 メソッド定義では、角かっこ {} を使用して、メソッドの呼び出し時に実行されるコードを格納します。 例えば次が挙げられます。

void SayHello() 
{
    Console.WriteLine("Hello World!");
}

これで、メソッドは呼び出されるたびに Hello World! 出力されます。

メソッドの呼び出し

メソッドは、その名前を使用して、必要な引数を含めて呼び出されます。 次の点を考慮してください。

Console.Write("Input!");

文字列 "Input!" は、 Write メソッドに指定された引数です。

メソッドは、定義の前または後に呼び出すことができます。 たとえば、 SayHello メソッドは、次の構文を使用して定義して呼び出すことができます。

SayHello();

void SayHello() 
{
    Console.WriteLine("Hello World!");
}

呼び出す前にメソッドを定義する必要はありません。 この柔軟性により、必要に応じてコードを整理できます。 プログラムの最後にすべてのメソッドを定義するのが一般的です。 例えば次が挙げられます。

int[] a = {1,2,3,4,5};

Console.WriteLine("Contents of Array:");
PrintArray();

void PrintArray()
{
    foreach (int x in a)
    {
        Console.Write($"{x} ");
    }
    Console.WriteLine();
}

メソッドの実行

メソッドを呼び出すと、メソッド本体のコードが実行されます。 つまり、実行制御はメソッド呼び出し元からメソッドに渡されます。 メソッドの実行が完了すると、コントロールが呼び出し元に返されます。 たとえば、次のコードを考えてみましょう。

Console.WriteLine("Before calling a method");
SayHello();
Console.WriteLine("After calling a method");

void SayHello() 
{
    Console.WriteLine("Hello World!");
}

このコードでは、次の出力が表示されます。

Before calling a method
Hello World!
After calling a method

メソッドが定義されると、それを使用する必要がある回数だけ、いつでも呼び出すことができます。 if-elseステートメント、for ループ、switch ステートメント内のメソッドを使用して、変数を初期化することもできます。

ベスト プラクティス

メソッド名を選択するときは、名前を簡潔にし、メソッドが実行するタスクを明確にすることが重要です。 メソッド名はパスカル大文字にする必要があり、通常は数字で始めることはできません。 パラメーターの名前は、パラメーターが表す情報の種類を記述する必要があります。 次のメソッド シグネチャについて考えてみましょう。

void ShowData(string a, int b, int c);
void DisplayDate(string month, int day, int year);

2 番目のメソッドは、表示されるデータの種類を記述し、パラメーターのわかりやすい名前を提供します。

これで基本を理解できました。これで、独自のメソッドの記述を開始する準備ができました。