マップリスト用の処理をレイヤーリスト用に使いまわしたいけど型が違う・・・うぐぐぐ。ここだけ処理変えたいっ。なーんて時に
as とか今まで知らなくて初めて使った。
ジェネリックはわがままな書き方出来て便利だなぁとしみじみ思いました。
↓上の画像を被せて合成する処理。
public override bool Action(List<TYPE> list)
{
if (m_select_num == list.Count - 1)//セレクタが一番下にある場合処理しない
return false;
//ビットマップ型であるならば
if (typeof(TYPE) == typeof(Bitmap))
{
Bitmap img = new Bitmap(m_data2 as Bitmap);
using (Graphics g = Graphics.FromImage(img))
{
//m_dataを書き込む
g.DrawImage(m_data as Bitmap, 0, 0);
}
//両方リストから消して
list.Remove(list[m_select_num]);
list.Remove(list[m_select_num]);
//新しいものを追加
(list as List<Bitmap>).Insert(m_select_num, img as Bitmap);
return true;
}
else
{
//他は何もしない
return false;
}
}