895 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 12:56:58 ] delegateを使用して(使用しなくても同様のことができればいいのですが・・・) using System; using System.Collections.Generic; delegate int getItem(); class DelegateTest { public static void Main() { List<int> liList = new List<int>(); getItem a = new getItem(A); a += new getItem(B); a += new getItem(C); liList.Add(a()); } static void A(){return 1;} static void B(){return 2;} static void C(){return 3;} } この様なプログラムを走らせてliListに[1,2,3]が入って欲しいのです。 (当然ながらというか、)実際には[3]しかはいりません。 マルチキャストデリゲートにしたのは実行したいメソッドの数が実行時にしか分からず できればif文分岐を少なくしたいと思ったからなのですが、 やはりメソッドを一つ一つ実行しなければ無理でしょうか? もしくはメソッドの戻り値をリストにして、そのリストを次のメソッドの引数をリストにして、最後にaddrangeでしょうか? 何か上手いテクニックがあれば、どなたかご教授下さい。