C#

匿名メソッド

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

実際に使用する機会があったのでサンプルとして記録しておく。
ソースコード一部抜粋

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;
    }
);

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

スポンサーリンク
管理人

システムえんじにゃー🐈
趣味はエレキギターなど。作曲したい。
WoWs/プリコネ
記事に関する質問はお気軽にどうぞ。

surface0 (さーふぇす)をフォローする
surface0 (さーふぇす)をフォローする

コメント

タイトルとURLをコピーしました