Helper objects to create delegates
Daniel Keep
daniel.keep.lists at gmail.com
Wed May 30 20:02:05 PDT 2007
Jason House wrote:
> I have a multi-threaded application where I pass delegates between
> threads. While I thought this was a good design in the beginning, I
> find myself having to create a lot of helper objects... Is there any
> way to avoid all the extra typing? Any candidate additions to the
> language that'd help? :)
>
> The following results in a run time error:
> void example(){
> foreach(foo x; objectList)
> passDelegate({x.func(7);});
> }
>
> The following works but is annoying to keep typing:
>
> class Helper{
> foo x;
> int param;
> this(foo _x, int _param){
> x = _x;
> param = _param;
> }
> void opCall(){x.func(param);}
static void delegate() create(foo x, int param)
{
return &(new Helper(x,param)).opCall;
}
> }
> void example(){
> foreach(foo x; objectList)
> passDelegate(Helper.create(x,7));
> }
Like that?
-- Daniel
--
int getRandomNumber()
{
return 4; // chosen by fair dice roll.
// guaranteed to be random.
}
http://xkcd.com/
v2sw5+8Yhw5ln4+5pr6OFPma8u6+7Lw4Tm6+7l6+7D
i28a2Xs3MSr2e4/6+7t4TNSMb6HTOp5en5g6RAHCP http://hackerkey.com/
More information about the Digitalmars-d-learn
mailing list