This post originated from an RSS feed registered with Java Buzz
by Geoffrey Wiseman.
Original Post: New Features in C# 2005
Feed Title: Furious Purpose
Feed URL: http://www.jroller.com/diathesis/feed/entries/rss
Feed Description: Thoughts and experiences on technology and software.
Catching up on some late reading, I note that TSS.NET has
posted the MS summary of the C# 2005 features; if you haven't
read it,
now's
the time to catch up. I've given them a quick scan for the time being,
and I'll try and summarize as I go. If I miss something or get something
wrong, please, feel free to let me know and I'll mark an update.
Anomymous methods,
often called C# delegates when I've seen them referenced before. Like closures, they seem to have access to
the declarer's state in ways that a first class function wouldn't necessarily.
Iterators, which
seem to be an unusual form of program flow control; methods that can resume where they left off,
and seem to be targeted at the creation of enumerators for C#'s foreach.
Partial Types,
which seem to be more of a code management tool than a feature. They allow you to declare a class in
segments, which, as they point out, has interesting implications for classes that can be partially
generated. For instance, you could generate persistent members, accessors and mutators from an O/R mapping file
while still defining custom behaviours and without needing a subclass.
Nullable Types
use the same syntax as Nice's nullable types for applying nulls to primitives, but without applying
to objects, and thus, without the interesting implications of Nice's pervasive null declarations.
Productivity Enhacements
seem to apply to the IDE. Many of these, one could argue are derived from IntelliJ IDEA's pioneering
work that has filtered down to Eclipse and now to VS.NET, but are nonetheless welcome improvements.
Debugging Features
seem reasonable for the most part. The Exception Assistant reminds me uncomfortably of a
VS.NET PaperClip (e.g. Clippy), but is probably useful for new users at the very least.
Tracepoints seem pretty limited, in that a breakpoint seems like it's more powerful, but
perhaps when dealing with areas of code that you pass frequently this could be useful.
Unit testing is, of course, a nice addition, although I wonder how this will affect the
existing .NET unit testing projects.
The Platform Enhancements
are too far from my regular working environment for them to make a lot of intrinsic sense to me,
so I'll leave you to investigate these features yourself.