module nestedclass; private import std.stdio; class Foo { class Bar { void delegate() getDelegate() { return &sayHello; } } Bar bar; void sayHello() { writefln("Hello"); } this() { bar = new Bar(); } } int main(char[][] argv) { Foo foo = new Foo(); void delegate() sayHello = foo.bar.getDelegate(); sayHello(); return 0; }