メソッド(Method)は、C#における関数の一種で、特定のタスクを実行するコードのまとまりです。メソッドはコードの再利用性を高め、コードの見通しを良くし、保守性を向上させます。この章では、メソッドの宣言方法と呼び出し、引数と戻り値の使い方、さらにオーバーロードや再帰の概念を説明していきます。
C#でメソッドを宣言する基本的な構文は以下の通りです。
アクセス修飾子 戻り値の型 メソッド名(パラメータリスト)
{
// メソッドの処理
}
public
、private
、protected
、internal
などのキーワードがあります。public
はメソッドをどこからでも呼び出せるようにし、private
はクラス内部からのみアクセス可能にします。int
、string
、bool
などの型や、データを返さない場合はvoid
を指定します。()
だけを記述します。次に、整数を引数として受け取り、その数を2倍にして返すメソッドを例に解説します。
public int DoubleNumber(int number)
{
int result = number * 2;
return result;
}
このメソッドはDoubleNumber
という名前で、引数としてint number
を受け取り、その値を2倍にして返します。
次に、このメソッドを呼び出すには以下のようにします。
int result = DoubleNumber(5);
Console.WriteLine(result); // 出力: 10
DoubleNumber(5)
を呼び出すと、5が2倍されて10が返り、result
に代入されます。このようにメソッドを定義し、必要に応じて呼び出すことで、コードの再利用が可能になります。
メソッドの引数(Parameter)と戻り値(Return Value)は、メソッドの柔軟性と機能性を高めます。
引数は、メソッドに入力データを渡す手段です。複数の引数を持つことができ、引数が多い場合はコンマで区切って指定します。
public int Add(int a, int b)
{
return a + b;
}
Add
メソッドは、2つの整数引数a
とb
を受け取り、その合計を返します。
int sum = Add(3, 7);
Console.WriteLine(sum); // 出力: 10
戻り値は、メソッドが呼び出し元に返すデータです。戻り値が必要ない場合は、void
を指定して何も返さないメソッドにすることができます。
public void DisplayMessage()
{
Console.WriteLine("Hello, World!");
}
DisplayMessage
メソッドは戻り値がないので、単に「Hello, World!」と出力します。
DisplayMessage(); // 出力: Hello, World!
メソッドのオーバーロードとは、同じ名前のメソッドを異なる引数で複数定義することです。C#では、引数の型や数が異なれば、同じ名前のメソッドを定義することができます。
public int Multiply(int a, int b)
{
return a * b;
}
public double Multiply(double a, double b)
{
return a * b;
}
上記の例では、整数を引数とするMultiply
メソッドと、浮動小数点数を引数とするMultiply
メソッドが定義されています。呼び出す際の引数の型に応じて、適切なメソッドが自動的に選ばれます。
int intResult = Multiply(2, 3); // 整数型のMultiplyが呼ばれる
Console.WriteLine(intResult); // 出力: 6
double doubleResult = Multiply(2.5, 4.0); // 浮動小数点型のMultiplyが呼ばれる
Console.WriteLine(doubleResult); // 出力: 10.0
オーバーロードを使うことで、異なる引数に対応したメソッドを用意でき、コードの可読性や柔軟性が向上します。
再帰とは、メソッドが自分自身を呼び出すことで、繰り返し処理を行う手法です。再帰を使うと、複雑な繰り返し処理をシンプルに表現できますが、停止条件を設定しないと無限ループになるため注意が必要です。
以下は、再帰を使用して階乗(Factorial)を計算するメソッドの例です。階乗とは、例えば5! = 5 * 4 * 3 * 2 * 1
といったように、1からその数までのすべての整数を掛け合わせた値です。
public int Factorial(int n)
{
if (n <= 1)
{
return 1;
}
else
{
return n * Factorial(n - 1);
}
}
このFactorial
メソッドは、引数n
が1以下のときに1を返します。それ以外の場合は、n * Factorial(n - 1)
を計算します。これにより、Factorial(5)
を呼び出すと以下のような再帰的な計算が行われます。
int result = Factorial(5);
Console.WriteLine(result); // 出力: 120
再帰処理の流れ:
Factorial(5)
が呼ばれ、5 * Factorial(4)に変換Factorial(4)
が呼ばれ、4 * Factorial(3)に変換Factorial(1)
が1を返して停止再帰は、数式的な処理や探索アルゴリズムの実装でよく利用され、コードを簡潔に保つことができます。しかし、再帰の深さが深くなりすぎるとスタックオーバーフローが発生するリスクがあるため、場合によってはfor
やwhile
ループに置き換えることも検討すべきです。
メソッドはプログラムの機能をモジュール化するために欠かせない要素です。引数と戻り値の仕組み、メソッドのオーバーロードや再帰の概念を理解することで、C#でのプログラミングがよりスムーズに行えるようになります。
プログラミングを始めたいと思っているそこのあなた、独学よりもプログラミングスクールが断然おすすめです!理由は簡単、続けやすさです。
独学でプログラミングを続けるのは、実はかなりハードルが高いんです。データによると、なんと87.5%もの学習者が途中で挫折しているとか。一方、各プログラミングスクールが公表しているデータによると、受講生の約95%が最後までやり抜いているとのこと。数字を見れば一目瞭然、プログラミングスクールの方が圧倒的に続けやすいんです。
プログラミングスクールには有料と無料のタイプがありますが、その違いは次の通りです:
どちらが自分に合っているか、よく考えて選ぶのが大事です。
プログラミング初心者でも学びやすいと評判の『FREEKS』、その特徴は以下の通り:
なんと、月会費のみで全カリキュラムが受け放題!Java、PHP、HTML/CSS、JavaScriptなど、多彩なプログラミング言語が学べるんです。しかも、AIが質問に自動で答えてくれるシステムも導入済み。
カリキュラムを終了した後には、Freeks経由で未経験者でも取り組める副業案件の受注が可能。実務を通じてスキルを磨き、市場価値の高いエンジニアへの道が開けます。
独学で悩むくらいなら、まずはプログラミングスクールをチェックしてみるのもアリかもしれませんよ!
↓ ↓ こちらをクリック ↓ ↓