If you ever use do multi-threaded programming and use Control.Invoke to invoke a method on GUI Thread, you might experience this problem before. You throw an exception with the hope that ThreadException will get it but wrong. It won't get it as the method Control.Invoke will actually catch the exception and then serialize it and throw it back in the calling thread. This is annoying since you expect to use ThreadException to handle it.
Sometimes, I have to connect to unmanaged system in which I have to initialize something at the beginning and need to clean up at the end. In this case, instead of writing a singleton class that have a finalizer, can't I have a class destructor to do this job?
Why neitherC# compiler nor the language itself (through an ability of attribute) provide a way for developers to set their own stack size?
Note: You can modify stack size manually through a utility called EditBin.exe (http://blogs.geekdojo.net/richard/archive/2003/10/10/207.aspx)
Why does Microsoft introduce DBNull.Value while it can use null instead?
Due to c# specification, overloaded operator can only be implemented as a public static function only. This is unlike C++ where it allows both instance and static operator function. Eric Gunnerson did comment once that is because of the simplicity. Because of this limitation, you cannot declare an interface or an abstract class where you can define those operators and try to perform that operation on interface or an abstract class. This especially will impact generic class. More example to come later. ......
I would like to start asking some questions in C# + .NET in which I don't have answers yet. If you guys know the answers, please help answer that. I will try to maintain the list of answers. Thanks :) To kick off an infrequently asked question awaiting for answer, I would like to ask why .NET BCL does not offer the API to convert time from one timezone to the other time zone. You have some way to convert time from other timezone to your local timezone by using DateTime.Parse hack though ......