using System;
delegate int Sample(int n);
class MainClass
{
class SampleClass
{
public int Method1(int n)
{
return n;
}
public int Method2(int n)
{
return ++n;
}
}
public static void Main()
{
SampleClass sample = new SampleClass();
// Method1を登録
Sample del1 = sample.Method1;
// del1にMethod2も登録
del1 += sample.Method2;
/* 返される戻り値が最後に実行される
* Metho2の1であることを確認 */
// 出力値:1
Console.WriteLine(del1(0));
/* Method1とMethod2を同時に登録 エラー
* メソッドグループとメソッドグループで
* +演算子を使用することはできないみたい
Sample del2 =
sample.Method1 + sample.Method2; */
/* Method1とMethod2をそれぞれdel3,del4に
* 登録して+演算子を利用する */
Sample del3 = sample.Method1;
Sample del4 = sample.Method2;
// 返される戻り値の確認
Sample del5 = del4 + del3;
// 出力値:0
Console.WriteLine(del5(0));
// del1からMethod1を解除
del1 -= sample.Method1;
// 出力値:1
Console.WriteLine(del1(0));
// del5からMethod2を解除
del5 -= sample.Method2;
// 出力値:0
Console.WriteLine(del5(0));
}
}
0 コメント:
コメントを投稿