Here is a Professor's take on it: - Generally we want to create re-usable types, perfect their interfaces, implementation of interfaces and ensure they are robust. Obviously anonymous types can not be used here. - However, quite often we have a need for a type that is very specific to the task at hand and will not be reused. Anonymous types can be used here and do allow better readability in that the code (delegate or type definition) is where the use of it is. Of course I tell my class that these were really required for LINQ.
Roger A. Crawfis Associate Professor Computer Science & Engineering The Ohio State University