digitalmars.D - Anonymous Classes and Delegates
- John C (27/27) Sep 15 2005 Has anyone used anonymous classes extensively? I can't tell if I'm tryin...
Has anyone used anonymous classes extensively? I can't tell if I'm trying to do something that can't be done, or if it exposes a bug in D. Here's the test code: class Person { char[] name; } Person getPerson(char[] name, Person delegate(char[]) d) { return d(name); } int main() { Person person = getPerson("Charlie", delegate Person(char[] name) { writefln(name); // 'name' here is ok return new class Person { this() { this.name = name; // 'name' here seems to be garbage of length 4203763 } }; }); writefln(person.name); // Access violation thrown here return 0; } If I put the anonymous class code in the getPerson method instead of calling the delegate, it works. But that isn't what I want. So, can anyone tell me why "name" isn't valid in the anoymous class constructor, but is ok in the line above it? Thanks.
Sep 15 2005