Why C# doesn’t implement indexed properties?

Here’s how we designed C# 4.

First we made a list of every possible feature we could think of adding to the language.

Then we bucketed the features into “this is bad, we must never do it”, “this is awesome, we have to do it”, and “this is good but let’s not do it this time”.

Then we looked at how much budget we had to design, implement, test, document, ship and maintain the “gotta have” features and discovered that we were 100% over budget.

So we moved a bunch of stuff from the “gotta have” bucket to the “nice to have” bucket.

Indexed properties were never anywhere near the top of the “gotta have” list. They are very low on the “nice” list and flirting with the “bad idea” list.

Every minute we spend designing, implementing, testing, documenting or maintaining nice feature X is a minute we can’t spend on awesome features A, B, C, D, E, F and G. We have to ruthlessly prioritize so that we only do the best possible features. Indexed properties would be nice, but nice isn’t anywhere even close to good enough to actually get implemented.

Leave a Comment