Whidbey & C# 2.0: New Toys

Been going over the PDC slides and got to TLS321: Visual C# “Whidbey” - IDE Enhancements For C# Developers and TLS320: Visual C# "Whidbey": Language Enhancements. As far as I can see, next year I'll be getting some new toys.

Cool: Filtered Auto Completion - If you write a catch phrase, the list of autocomplete options will filter to classes that inherit from System.Exception.
Cool: Find All References - Just like Find In Files, but for references.
Cool: Automatic Property Creation for Field - Finally! Thank you, Whidbey Team!
Cool: In house refactoring - Now all of your little "This doesn't look good enough" tasks are done automatically.
Cool: Generics, Iterators, Partial Types. I predict Anonymous Methods to be a nuisance.
Cool: Property Accessor Accessibility - Being able to further restrict a certain accessor for a property (get is public, set is internal, etc.).

Uncool: Excessive use of the bold font.
Uncool: Namespace alias qualifier. It seems as though Microsoft decided that instead of trying to work out the problem of namespace
name/namespace name and namespace name/class name collisions, they would simply work around it. Maybe it's just me, but I expected more from Microsoft on solving such an annoying and foolish problem.

...and yes. I am posting this at 4 o'clock in the morning.

4 Comments

  • "I predict Anonymous Methods to be a nuisance."



    Yeah, like they are in Lisp :-)



    They'll be overused by some people for sure, but there's just so many Lisp, Scheme and other functional language samples that will be able to be mapped directly to C# (and VB.NET) that using them for events/delegates will be just a minor issue.

  • Bold fonts can be configured, you can configure a lot more code elements than you can today.



    The name clashes are unavoidable. Namespace 'Foo' and class Foo.



    Foo.Bar



    What's it? THe Bar class in the Foo namespace? Or the Bar property in the Foo class? By introducing a kind of typedef equivalent, they solved nameclashes which are rare btw, because who names classes the same as namespaces, or namespaces which could have been type names?

  • Frans,



    "who names classes the same as namespaces, or namespaces which could have been type names?"



    One solution would be to just not let people do it instead of work around it.



    For example, if take the statement:



    null = (IntPtr)12;



    you could either give out a compiler error or let the default address that is null be 12. Doing the latter is far cooler, but is horribly bug prone. using the former simplifies the manner.

  • Mark,



    Why not avoid the problem?

    As you can clearly see in the TLS321 presentation, anonymous methods can be converted to normal methods at the glimpse of an eye.

    Why not just do a Lisp/Scheme/etc. to .NET style language converter (you could call it Lisp# or Scheme.NET for all I care ;P ), and just eliminate the problem?

Comments have been disabled for this content.