Steve One small thing. As you said I might declare a delegate in an alternate fashion that is by saying "void delegate() dg;".
But would it be possible to rewrite the following declaration in a way that avoids naming foo explicitly. I would just have an alias for foo. I am asking this to cover the cases where foo might have a list of arguments and I want to create a delegate with the same list of arguments. typeof(&F.init.foo) dg; Regards - Puneet