メソッドのサンプル

2023年1月8日

色々なサンプルを確認して、メソッドを理解しましょう。

メソッドとは、関連のある処理をまとめたものです。
これまでは、Mainメソッドに全てのコードを記述していましたが、色々なことを実行させようとすると、ひたすら長いコードを入力するしかなく次第に見づらくなってきます。そこで、関連のあるまとまった処理を別に分けることで整理をします。

ブラウザで、リンクをクリックするとリンク先にジャンプしますよね。そこには関連のある内容が記載されているはずです。イメージはそんな感じです。

メソッドの種類

戻り値なし引数ひきすうなしのメソッド

コンソールに表示するだけなど、一方通行の処理、やりとりが必要ない処理の場合に使用します。次は、Main()メソッドからWalk()メソッドを呼び出している例になります。Walk()メソッドが完了すると、Main()メソッドに処理が戻ってきます。

表示

歩く
呼び出す側は、
メソッド名();

呼び出したいメソッド名を記述します。

メソッド側は、
void メソッド名()
{
    // ここにコードを記述
}

と記述する決まりになっています。
voidは、呼び出し側に何も返さない場合に記述します。

戻り値なし引数ひきすうありのメソッド

コンソールに表示するだけだけど、何を表示するかを呼び出し元から指定したい場合など、メソッド側に指示する処理の場合に使用します。次は、Main()メソッドからWalk()メソッドを呼び出している例になります。

表示

歩く
呼び出す側は、
メソッド名(受け渡すもの);

受け渡すものは、ここでは、"歩く"になります。

メソッド側は、
void メソッド名(もらう型名 もらうもの)
{
    // ここにコードを記述
}

もらう型名は、"歩く"なので、stringですね。
もらうものは、変数を指定します。この変数は、このメソッド内で使います。
これを引数ひきすうと言います。ここで宣言されているため、改めてブロック内で宣言する必要はありません。

戻り値あり引数ひきすうありのメソッド

メソッドに何か処理をさせ、その結果が欲しい場合に使います。次は、Main()メソッドからWalk()メソッドを呼び出している例になります。

表示

Walk
呼び出す側は、
メソッド名(受け渡すもの);

受け渡すものは、ここでは、"歩く"になります。
同じですね。ただし、メソッド側から結果をもらえるので、それを受け入れる変数を用意します。
この例では、result変数です。型名stringで宣言しています。宣言と同時に代入のパターンですね
最後は、WriteLine()で表示しています。メソッドがら結果をもらっているので、Mainメソッド側で表示ができるのです。

メソッド側は、
結果の型 メソッド名(もらう型名 もらうもの)
{
    // ここにコードを記述
    return 返す値
}

戻り値(返り値)ありの場合は、voidではなく結果の型を記述します。文字列を返しますので、stringですね。
また、返す値は、ブロック内で、returnの続いて記述します。

色々なサンプル

戻り値なし引数ひきすうなしのメソッド

サンプルコード1
static void Main(string[] args)
{
    TwoTimes1();
}

// 2を2倍した結果を表示するメソッド
static void TwoTimes1()
{
    int ret = 2 * 2;
    Console.WriteLine($"TwoTime1メソッドの呼び出し {ret}");
}

表示

TwoTime1メソッドの呼び出し 4
呼び出し元
TwoTimes1();

()が特徴です。ただ呼び出すのみ。

メソッド側
void TwoTimes1()

こちらも()が特徴。ブロック内を実行しますが、他の影響を受けません。

戻り値なし引数ひきすうありのメソッド

サンプルコード2
static void Main(string[] args)
{
    TwoTimes1(2);
}

// 引数を2倍した結果を表示するメソッド
private static void TwoTimes1(int a)
{
    int ret = a * 2;
    Console.WriteLine($"TwoTime1メソッドの呼び出し {ret}");
}

表示

TwoTime1メソッドの呼び出し 4
呼び出し元
TwoTimes1(2);

(2)が特徴です。メソッド側に2を渡します。

メソッド側
void TwoTimes1(int a)

こちらは(int a)が特徴。変数aに呼び出し元からもらった値が代入されています。この変数aは、メソッドのブロック内でのみ利用できます。

戻り値あり引数ひきすうありのメソッド

サンプルコード3
static void Main(string[] args)
{
    int answer = TwoTimes1(2);
    Console.WriteLine($"TwoTime1メソッドの呼び出し {answer}");
}

// 引数を2倍した結果を戻り値とするメソッド
private static int TwoTimes1(int a)
{
    int ret = a * 2;
    return ret;
}

表示

TwoTime1メソッドの呼び出し 4
呼び出し元
int answer = TwoTimes1(2);

answer変数にメソッドの結果をが代入されます。2をメソッドに渡して呼び出し、戻された結果がanswer変数に代入されます。

メソッド側
int TwoTimes1(int a)
// 戻すときは、次のように returnの後に戻したい内容を記述します。
return ret;

変数aに呼び出し元からもらった値が代入され、計算結果をint型で戻します。

サンプルコード4
static void Main(string[] args)
{
    int answer = TwoTimes1(2, 3);
    Console.WriteLine($"TwoTime1メソッドの呼び出し {answer}");
}

// 引数2つの掛け算した結果を戻り値とするメソッド
private static int TwoTimes1(int a, int b)
{
    int ret = a * b;
    return ret;
}

表示

TwoTime1メソッドの呼び出し 6
呼び出し元
int answer = TwoTimes1(2, 3);

answer変数にメソッドの結果をが代入されます。2と3をメソッドに渡して呼び出し、戻された結果がanswer変数に代入されます。

メソッド側
int TwoTimes1(int a, int b)
// 戻すときは、次のように returnの後に戻したい内容を記述します。
return ret;

変数a、変数bに呼び出し元からもらった値が代入され、計算結果をint型で戻します。

サンプルコード5

static void Main(string[] args)
{
    string answer = TwoTimes1("太郎");
    Console.WriteLine(answer);
}

// 引数をもとに「あなたの名前は」「です」を追加した結果を戻すメソッド
static string TwoTimes1(string a)
{
    string ret = $"あなたの名前は{a}です";
    return ret;
}

表示

あなたの名前は太郎です
呼び出し元
string answer = TwoTimes1("太郎");

answer変数にメソッドの結果をが代入されます。"太郎"をメソッドに渡して呼び出し、戻された結果がanswer変数に代入されます。

メソッド側
string TwoTimes1(string a)
// 戻すときは、次のように returnの後に戻したい内容を記述します。
return ret;

変数aに呼び出し元からもらった値が代入され、結果をstring型で戻します。

C#

Posted by hidepon