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








"John C" <johnch_atms hotmail.com>