メソッドは、クラスの動作を規定します。すでにMainメソッドは何回も作っていますね。
最も簡単なメソッドは、引数も戻り値もとらないメソッドです。
void メソッド名()
{
...
}
クラスの中で定義するには、これにアクセス修飾子(private, public, protectedなど)がつきます。また、静的なメソッドにはstaticキーワードをつけます。呼び出し型はフィールドと同じです。
オブジェクト名.メソッド名();//(インスタンスメソッドの場合) クラス名.メソッド名();//(静的メソッドの場合)では、簡単な例を見てみましょう。
// method01.cs
using System;
class MyClass
{
public void Show()
{
Console.WriteLine("Showメソッドが呼ばれました");
}
}
class method01
{
public static void Main()
{
MyClass mc = new MyClass();
mc.Show();
}
}
MyClassクラスのメンバは、インスタンスメソッドのShowメソッドのみです。インスタンスメンバなので呼び出すには、クラスのインスタンスを生成しなくてはいけません。Mainメソッドでは、new演算子によりMyClassクラスのインスタンスmcを生成しています。そして、mc.Show();でShowメソッドを呼び出しています。
実行結果は次のようになります。
今度は、Showメソッドをpublicにして呼び出してみましょう。
// method02.cs
using System;
class MyClass
{
public static void Show()
{
Console.WriteLine("Showメソッドが呼ばれました");
}
}
class method02
{
public static void Main()
{
MyClass.Show();
}
}
staticなメンバは、クラス名.メンバ名で呼び出せるので、MyClass.Show()で呼び出しを行っています。実行結果は次のようになります。
Mainメソッドのあるクラスにも、当然メソッドを追加することができます。
// method03.cs
using System;
class method03
{
public static void Main()
{
method03 m3 = new method03();
m3.Show1();
Show2();
}
void Show1()
{
Console.WriteLine("Show1が呼び出されました");
}
static void Show2()
{
Console.WriteLine("Show2が呼び出されました");
}
}
Show2メソッドは、自分自身のクラスにいるので、単にShow2();で呼び出すことができます。もちろんmethod03.Show2();としてもかまいません。実行結果は次のようになります。
Update 27/Aug/2006 By Y.Kumei