using System;
// Delegateを定義
delegate void SampleDelegate(int n,string s);
class SampleClass
{
public void sampleMethod1(int n, string s)
{
Console.WriteLine("{0}:{1}", n, s);
}
// 静的メソッド
public static void sampleMethod2(int n, string s)
{
Console.WriteLine("{0}:{1}", ++n, s);
}
}
class MainClass
{
static void Main()
{
// SampleClassをインスタンス化
SampleClass sample = new SampleClass();
// SampleDelegate型の変数sdを定義
SampleDelegate sd = sample.sampleMethod1;
// 出力値:1:Method1
sd(1, "Metho1");
/* sdに登録するMethodを変更
* 静的メソッドなのでインスタンス化しないで
* クラス名だけで呼び出せる */
sd = SampleClass.sampleMethod2;
// 出力値:(++1=)2:Method2
sd(1, "Method2");
}
}
0 コメント:
コメントを投稿