Const correctness in C#
One would think that a modern programming language (especially one not hindered by backwards compatibility with C) would implement the obviously useful const facility.
Some people see const simply as a way to give the compiler optimization hints. I see it as much more. Const is a bullet in the arsenal of preemptive bug prevention. Const isn't an cure-all by any means, but it helps eliminate certain typo (or worse, "thinko") bugs in which you alter a variable, even though your intention was to leave it untouched. By typing 5 extra characters, const is an effortless way to prevent this bug.
When you write code for a living, you clutch onto any good bug prevention tricks, and are loathe to let them go. That's why I'm so appalled that C# doesn't let me use const.
When asked why C# didn't have const, the lead architect sort of looked at his shoes and mumbled that it was too hard to guarantee constness, and that C++ cheats by letting you override it.
How do I enforce const correctness in C#?
Answer: you can't.
CLR Design Choices (google cache)
Anders Hejlsberg, the lead C# architect, talks with Bruce Eckel and Bill Venners about IL instructions, non-virtual methods, unsafe code, value types, and immutables.The article where the imagined shoe-gazing took place.
Why doesn't C# have "const"?
Discussion thread where vitriol is spewed at a hypothetical VB programmer named "Mort." Mort is an imaginary dullard who hacks his way through projects, and for whom "const" would be an impossible-to-understand roadblock.