Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Anonymous Types

0.00/5 (No votes)
4 Jul 2008 1  
It's now possible to create class definitions on the fly.  This is the concept of anonymous types, where the type is based on the signature of the

This articles was originally at wiki.asp.net but has now been given a new home on CodeProject. Editing rights for this article has been set at Bronze or above, so please go in and edit and update this article to keep it fresh and relevant.

It's now possible to create class definitions on the fly.  This is the concept of anonymous types, where the type is based on the signature of the class.  To create an anonymous type, use the following:

new { First = "B", Second="C" };

With this new type, we now have a new class with a First property of type string, and a Second property of type string.  However, nothing happens with the class because we have to store it somewhere.  This is where the "var" keyword comes into play:

var stringValue = "X";
var instance = new { First = "B", Second = stringValue };

Instance now represents our anonymous type. The compiler will parse the above syntax and create a standard CLR type which has 2 properties First and Second and assign these properties type based on the inilization values. Here both the property will have type string as they have been inilized as string.

 In Visual Studio 2008, there is full intellisense support for this.  When creating an anonymous type, make sure a value is supplied to the property, or that it can infer the type from a variable; otherwise, if a null is supplied, a compile error occurs.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here