Wednesday, August 19, 2015

Top 10 Worst C# Features

Eric Lippert (via Chris Lattner, comments):

When I was on the C# design team, several times a year we would have “meet the team” events at conferences, where we would take questions from C# enthusiasts. Probably the most common question we consistently got was “Are there any language design decisions that you now regret?” and my answer is “Good heavens, yes!”

This article presents my “bottom 10” list of features in C# that I wish had been designed differently, with the lessons we can learn about language design from each decision.

1 Comment RSS · Twitter

Ha, those are great. The bit shifting is interesting/quirky, and I didn't know you could abuse `enum`s like that. enum YELLING_ENUM { ONE = 1, TWO } can have YELLING_ENUM myEnum = (YELLING_ENUM)442; Bizarre.

But no ++ or --? Somebody's been hanging out with Douglas Crockford too long. "First, the point of these operators is to be useful for both their value and their side-effect, which is automatically a big negative for me..." /sigh Didn't we just go through all sorts of lambdas and don't we all love LINQ?

C# is a hipster language trying to be square. ;^)

Leave a Comment