Thought for the holidays: Two things that drive us, software development addicts: enthusiasm and laziness....
A day may come when you want to turn off the Debug dialog that appears when a .NET program has an unhandled exception.
Update: Given changes at webhost4life (new owner, new support, new control panel, new hosting environments) at the beginning of 2010, the review below is outdated. I now recommend Arvixe and OrcsWeb.
Scott Mitchell created a WebControl named RoundedCorners. Its goal is to simplify the creation of rounded boxes in your dynamic web pages.
Let's quote Scott:
How do you report spam? I use SpamCop, and you, what is your preferred response to spam?
If you look at this post by SantoshZ of the C# team, you'll see code like this:
DictionaryEntry is a structure and you're foreaching which means the instance is coming from IDictionaryEnumerator.Current therefore assigning to only the local copy. This would be a nasty problem if people forgot about the semantics of value types vs. ref. types, so the C# compiler prevents you from doing this.
However, I agree with Eric Newton that the message from the compiler should be clearer! The current one is very confusing.
Now, if you want something even more confusing, you can try the following code:
IDictionary dictionary = new Hashtable();
dictionary["dummy"] = "dumb";
IEnumerator enumerator = dictionary.GetEnumerator();
entry = (DictionaryEntry) enumerator.Current;
entry.Value = 0; // no compiler error, but "error" nonetheless
This one compiles, but doesn't do what you'd expect at first. Guess what the output will be... So yes, the compiler message is useful (even if not easy to understand), but doesn't fire in all the cases...
I would like to apologize to readers: you'll notice that posting comments on most of the posts of this weblog is currently disabled. You'll see "Comments on this post are closed" instead. I'm sorry about this, and I can't change anything about it right now :-( This is a new site-wide (weblogs.asp.net) setting.
I hope we'll be able to reactivate the comments soon! I don't like that setting at all. I appreciate comments much, and I do not consider that previous posts as obsolete.
Scott, please do something! I you want this feature to be disabled too, please say it.
In the spirit of language quizes, you can try to find why the following code does not compile:
In C#, we can use two kinds of delimiters to comment code: // and /*...*/
The first one applies to one line, the second can be applied to a set of lines or just a part of a line (block commenting). These two possibilities are useful, but I always missed the ability to nest comment blocks.