C#でカスタムメソッドを定義する方法を徹底解説!基本構文と実例付き
C#で独自のメソッド(カスタムメソッド)を定義するには、以下の構文を使用します。
<アクセス修飾子> <戻り値の型> <メソッド名>(パラメータリスト) {
メソッド本体
}メソッドを構成する要素
メソッドは、以下の各要素によって構成されます。それぞれの役割を理解しておくことが、C#プログラミングの基礎となります。
アクセス修飾子(Access Specifier) − 他のクラスからその変数やメソッドがどの程度参照できるか(可視性)を決定します。代表的なものに
public、private、protectedなどがあります。戻り値の型(Return Type) − メソッドは処理結果として値を返すことができます。戻り値の型とは、メソッドが返す値のデータ型のことです。メソッドが何も値を返さない場合は、戻り値の型として void を指定します。
メソッド名(Method Name) − メソッドを識別するための一意な名前です。大文字・小文字が区別される点に注意してください。また、同じクラス内で宣言されている他の識別子と同じ名前を使うことはできません。
パラメータリスト(Parameter List) − 括弧
()で囲まれた部分で、メソッドとの間でデータを受け渡しするために使用します。パラメータリストには、パラメータの型・順序・数が含まれます。パラメータは省略可能であり、パラメータを持たないメソッドも定義できます。メソッド本体(Method Body) − 目的の処理を実行するために必要な一連の命令文が記述される部分です。
サンプルコード
それでは、実際のコード例を見てみましょう。次の例では、2つの整数のうち大きい方の値を返す FindMax メソッドを定義しています。
using System;
namespace Demo {
class NumberManipulator {
public int FindMax(int num1, int num2) {
/* ローカル変数の宣言 */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
static void Main(string[] args) {
/* ローカル変数の定義 */
int a = 90;
int b = 15;
int ret;
NumberManipulator n = new NumberManipulator();
// FindMaxメソッドの呼び出し
ret = n.FindMax(a, b);
Console.WriteLine("Max value is : {0}", ret);
Console.ReadLine();
}
}
}実行結果
このプログラムを実行すると、以下のように出力されます。
Max value is : 90
解説のポイント
このサンプルでは、FindMax メソッドが public int として宣言されています。つまり、アクセス修飾子は public(どこからでも呼び出し可能)、戻り値の型は int(整数値を返す)、メソッド名は FindMax、そしてパラメータリストには int num1, int num2 の2つの引数が指定されています。
Main メソッド内では、NumberManipulator クラスのインスタンス n を生成し、n.FindMax(a, b) という形でメソッドを呼び出しています。このように、メソッドを定義することで、同じ処理を何度も書き直すことなく再利用できるようになり、コードの可読性や保守性が大きく向上します。
-
Rubyのメソッド入門:defキーワードで独自のメソッドを定義する方法
Rubyにおける「メソッド」とは、特定の目的のためにひとまとめにされた、1行以上のRubyコードのことです。 このコードのまとまりには名前が付けられており、一度定義してしまえば、同じコードを何度も書いたりコピー&ペーストしたりすることなく、必要なときにいつでも再利用できます。 メソッドの主な役割 メソッドの目的は、大きく分けて以下のようなものがあります。 情報を取得する オブジェクトを変更・生成する データをフィルタリング・整形する 具体例 例1: Arrayオブジェクトに対するsizeメソッドは、配列内の要素数を返します(情報の取得)。 例2: popメソッドは、配列から最後の要素を取り
-
RubyとRuby on Railsでメソッド委譲を行う方法【delegate・Forwardable・SimpleDelegator徹底解説】
この記事では、Rubyにおけるメソッド委譲(delegation)について詳しく解説します。 delegateメソッド、Forwardableモジュール、そしてSimpleDelegatorクラスの3つの手法を使いこなせるようになりましょう。 なぜ「委譲」が必要なのか? オブジェクト指向プログラミングにおいて、クラス同士が協調して動作する方法は主に2つあります。 継承(Inheritance) コンポジション(Composition) 継承では、親クラスが持つメソッド、定数、インスタンス変数の定義を、それを継承するすべての子クラスが共有するクラス階層を構築します。 例えば、Rubyではすべ