C#のクラスメンバー - メソッド(メンバー関数)

クラスを構成する要素の事をメンバーと言います。
その中で、クラスの動きをプログラミングしていく部分をメソッド(メンバー関数)と呼びます。


メソッドの定義

クラス定義のブロックの中にメソッドを定義します。
メソッドの基本的な形は以下のようになります。
アクセスレベル 戻り値の型 メソッド名(パラメータ)
{
    //処理内容をプログラミング
}


メソッド名の付け方とガイドライン

メソッド名は一定のガイドラインに従って命名する事が推奨されています。
メソッド名は単語の最初の文字を大文字(pascal形式)にした名詞または名詞句で命名しましょう。


メソッドのアクセシビリティ(アクセスのしやすさ)

メソッド定義の前に public や private といった修飾子が付けられることがあります。
これらの修飾子はフィールドのアクセシビリティレベルを表していて以下のような制限があります。
  • public      ・・・ どこからでもアクセス可能
  • private     ・・・ このクラス内のコードからのみアクセス可能
  • protected ・・・ このクラス内のコードか、このクラスから派生したクラスからのみアクセス可能
アクセス修飾子が省略されたときは private になります。


パラメータ

メソッドは呼び出し元から値を受け取る為の変数です。
メソッド内ではこの値を使ってのプログラム処理を行う事ができます。
パラメータは変数宣言と同様に変数の型と変数名で記述します。
パラメータはカンマ区切りで複数宣言する事も可能です。パラメータが必要ない時はカッコ()だけになります。
public class TestClass
{
    public void TestMethod0()
    {
    }

    public void TestMethod1(int number)
    {
    }

    public void TestMethod2(int number, string text)
    {
    }
}


戻り値

メソッドは処理の結果として値を1つ返す事が出来ます。
メソッドの呼び出し元でこの値を受け取って利用できる仕組みです。

メソッド定義の先頭では、まずこの戻り値の型を指定します。
(整数型の値を戻り値にする場合は int を指定する)
戻り値が必要ない場合は、キーワード(予約語) void を指定します。

戻り値の型を指定した場合は、必ずキーワード(予約語) return を使って値を返さなければなりません。
尚、returnに到達するとメソッドはそこで処理を終了してメソッドの呼び出し元へ制御が戻ります。
public class TestClass
{
    public void TestMethod1(int number)
    {
        //戻り値はvoidなので return はいらない
    }

    public int TestMethod2(int number)
    {
        if (0 > number)
        {
            return -1; //numberが0より小さい時はここで終了
        }
        if (0 < number)
        {
            return 1;  //numberが0より大きい時はここで終了
        }
        //numberが0の時だけここに到達
        return 0;
    }
}



メソッドの呼び出し

同一クラス内にあるメソッドはメソッド名を指定して呼び出します。
public class TestClass
{
    public int Number;

    
    public void TestMethod()
    {
        Number = 0;        //                             Numberは0
        Plus(1);           // メソッドPlus()が実行        Numberは1
        Number += Ten();   // メソッドTen()の戻り値を計算 Numberは11
    }

    public void Plus(int plus)
    {
        Number += plus;
    }
    
    public int Ten()
    {
        return 10;
    }
}

別のクラスからメソッドを呼び出すには、クラスの変数名の後にピリオド「.」を付けたあとにメソッド名を記述します。
public class Program
{
    static void Main()
    {
        TestClass test1;
        test1 = new TestClass();       // test1のインスタンス生成
        test1.TestMethod();            // test1のTestMethod()を実行 test1.Numberは11

        TestClass test2;
        test2 = new TestClass();       // test2のインスタンス生成
        test2.Number = 1;              //                           test2.Numberは1
        test2.Plus(2);                 // test2のPlus()を実行       test2.Numberは3
    }
}




コメント