D should be like this :) class D { private int delegate(void) _deleg; private int _value; // this(int delegate(void) d) { _deleg = d; } void write() { if(_deleg !is null) } _value = _deleg(); // } writefln(_value); // } }