C# delegate 使ってみた ― 2017年09月20日 08:09
C#のdelegate、教科書的にはわかっていたが、使える形で理解していたとはいえない。実際のところ、使用する局面がないと身につかないもの。
今回、メモリ上に展開した画像のピクセルデータについて、明度や彩度を調整する処理を書いてみると、ピクセルを体現するクラスのメソッド呼び出しを除くと、ほとんど同じ処理をいくつも書いていることに気づく。異なる部分を関数にして、引数渡しにすれば、まとめられそう。
457行:delegateの定義。引数渡しにする関数の形を宣言するようなもの。
460行:引数渡しにしたい関数の実体のひとつめ。delegateの形に合わせている。以下、複数個続くが、ピクセルを体現するクラスのメソッド呼び出しが異なるのみ。
426行:このクラスのパブリックなメソッドのひとつめ。460行目の関数名を引数にしている。
496行:引数で渡された関数を呼び出す。
関数名を引数に取るメソッドの定義。SoftwareBitmapをbyte配列に変換し、全てのピクセルについて、引数で渡されたメソッドを呼び出し、更新したbyte配列をSoftwareBitmapに戻す。この部分の記述が一つにまとまった。
コメント
トラックバック
このエントリのトラックバックURL: http://c5d5e5.asablo.jp/blog/2017/09/20/8680280/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。