interface C1{ C1 get();}
class Use : C1{C1 get(){return this;}}
class D
{
private C1 mine;
this(){mine = new C2;}
C1 give(){return mine.get;}
private class C2 : C1
{
C1 get(){ return mine = new Use(); }
}
}
void main()
{
D d = new D; // make C2
C1 c = d.give; // make a C1
c = d.give; // do not make a C1
}
comments?