C# Bloopers

Please do not get me wrong; C# is awesome. It is the language of my choice, even though I am pretty well versed in C++ and Java. That having been said, it cannot be denied that C# has its share of flaws, too. In this series of posts I am documenting some of them, in no particular order.

Also please note that some of the issues described here are Visual Studio bloopers, or DotNet bloopers, and not C#-in-general bloopers.

C# Blooper №1: No warnings about uninitialized readonly members

C# Blooper №2: No warnings about accessing uninitialized members

C# Blooper №3: No warnings about fields having already been initialized

C# Blooper №4: Lame/annoying variable scoping rules, Part 1

C# Blooper №5: Lame/annoying variable scoping rules, Part 2

C# Blooper №6: No warnings about unused parameters

C# Blooper №7: No warnings about unused private methods

C# Blooper №8: No warnings for conditions that are always true/false

C# Blooper №9: Annoying case statement fall-through rules

C# Blooper №10: Switch statements are not properly formatted

C# Blooper №11: Zero to Enum conversion weirdness

C# Blooper №12: ‘Where’ constraints not included in method signatures

C# Blooper №13: Stack and Queue do not implement ICollection

C# Blooper №14: Weird / annoying interface method visibility rules

Stay tuned, there is more to come.