public class Foo { delegate Inner foo_fn(string s); public static void Main() { foo_fn f = delegate (string s) { return new Inner(s + s); }; f ("Test"); } class Inner { public Inner (string s) { } } }