[C#] 匿名メソッド

  • このエントリーをはてなブックマークに追加

C#2.0では”匿名メソッド”という新機能が追加されている。
本来デリゲートを指定するところに直接処理内容を書いてしまう手法。

実際に使用する機会があったのでサンプルとして記録しておく。
ソースコード一部抜粋
[csharp]
this.Buffer.Sort(
delegate(RTPData x, RTPData y)
{
int diff = (int)(x.SeqNo – y.SeqNo);
if (diff > JITTER_BUFFER_SIZE) return -1;
if (diff < -JITTER_BUFFER_SIZE) return 1;
return diff;
}
);
[/csharp]

ちなみにRTPDataは自作クラスでthis.BufferListクラス。
SortメソッドでRTPDataのメンバであるSeqNoをもとに昇順ソートするもの。
このソースコードではJITTER_BUFFER_SIZEとの関係によりちょっと特殊な形になっている。
こうすることで簡潔なコードが書けるので、見た目がすっきりする。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。




コメントを残す