第5回 4.メソッド

メソッドというのは、一連の手順を記したコードの塊です。
メゾッドは、クラス又は構造体の中で、アクセスレベル,返り値,名前,パラメータの
順に宣言し、パラメータは括弧でくくります。複数のパラメータがある場合はカンマで
区切り、パラメータが無い場合は空の括弧を記述します。
C/C++のようにvoidでは無いので注意してください。

返り値、というのは、メソッドを実行した結果を返す変数の型です。
実行結果を返さないメソッドの場合はvoidを記述します。

名前はメソッドの名前です。
単語を略したりせず分かりやすい名前をつけるように心がけましょう。

パラメータはメソッドを実行する際に必要な引数です。
変数の型と変数名を記述します。

public void Func1(){}		//返り値もパラメータも無し
public int Func2(int x){ return 0;}	//返り値と引数がint
public int Func3(int x,int y,string s){return 0;}	//引数が複数ある場合

C/C++と違い、プロトタイプ宣言をして、メソッドを別な場所に記述することはしません。
クラス内に記述します。

public partial class Form1 : Form
{
   struct Color
   {
       private byte R,G,B;
       public void SetColor( byte r, byte g , byte b)
       {
           R = r;G = g;B = b;
       }
       public int Get24BitColor()
       {
           return R << 16 | G << 8 | B;
       }
   }
   public Form1()
   {
       InitializeComponent();
   }
   private void Form1_Load(object sender, EventArgs e)
   {
       Color col = new Color();
       int   col24;
       col.SetColor( 255 , 255 , 255 );
       col24 = col.Get24BitColor();
       label1.Text = col24.ToString();
   }
}

今までの役に立たなかったColor構造体を少しは役に立つようにしてみましょう。
まず、フィールドR,G,Bをprivateにしてみました。
これで外部からはアクセスできません。以前の例のようにcol.R = 255といった記述は出
来ません。
構造体Colorの内部では、privateでもアクセスできる為SetColorというメソッドを用意
し、数値をセットします。
次に、Get24BitColorというメソッドを用意し、保存しているR,G,Bから24Bitの色に変換
して値を取得します。

インスタンス化するとき、フィールドの初期化が必要ですが、フィールドはprivateの為
外部から代入するようなことは出来ません。
そこで、newキーワードを使い、規定コンストラクタを呼び出すことにより、フィールド
の初期化を行っています。

ちなみに、int型のcol24の中身を、label1のTextプロパティに代入する際、ToString()を
読んでいますが、これもメソッドです。
Color構造体では24Bitの数値に変換していますが、ToStringは24Bitの文字列型に変換して
います。
最終更新:2007年10月12日 13:15
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。