using System;
// Delegateを定義
delegate void SampleDelegate(int n);
class SampleClass
{
public void sampleMethod1(int n)
{
Console.WriteLine("{0}:{1}", n, "Method1");
}
public void sampleMethod2(int n)
{
Console.WriteLine("{0}:{1}", ++n, "Method2");
}
}
class MainClass
{
static void Main()
{
// SampleClassをインスタンス化
SampleClass sample = new SampleClass();
// SampleDelegate型の変数sdを定義
SampleDelegate sd = sample.sampleMethod1;
// 出力値:1:Method1
sd(1);
// 改行
Console.WriteLine();
// sdにSampleMethod2を追加
sd += sample.sampleMethod2;
/* 出力値
* 1:Method1
* 2:Method2
*/
sd(1);
Console.WriteLine();
// sdからsampleMethod1を削除
sd -= sample.sampleMethod1;
// 出力値:2:Method2
sd(1);
}
}
0 コメント:
コメントを投稿