- 追加された行はこの色です。
- 削除された行はこの色です。
[[CSharp講座第四回]]
#markdown{{
# 関数2
## デリゲート
関数を変数のように扱う機能をデリゲート(委譲)といいます。
まずデリゲートの型を作ります。
```
アクセシビリティ delegate 戻り値の型 デリゲート名(引数リスト);
```
変数の作り方は他と同じです。
変数を関数のように呼び出すと登録された関数を呼び出すことができます。
#### 演習1 デリゲート
LinqPadのLanguageをC#Programにしておきましょう。
以下の文字を入力し実行しましょう。
```
void Main()
{
A a = f;
a();
}
delegate void A();
void f()
{
1.Dump();
}
```
### マルチキャストデリゲート
デリゲートは複数の関数を登録することができます。
#### 演習2 マルチキャストデリゲート
LinqPadのLanguageをC#Programにしておきましょう。
以下の文字を入力し実行しましょう。
```
void Main()
{
A a = f;
a+=f2;
a();
a-=f;
a();
}
delegate void A();
void f()
{
1.Dump();
}
void f2()
{
2.Dump();
}
```
## ラムダ式
関数を
## イベント
# プログラムを作る
## コマンドライン引数
# ジェネリック
# 文字列
}}