Mar 07, 2010
The Singleton pattern has several advantages over static classes. First, a singleton can extend classes and implement interfaces, while a static class cannot (it can extend classes, but it does not inherit their instance members). A singleton can be initialized lazily or asynchronously while a static class is generally initialized when it is first loaded, leading to potential class loader issues. However the most important advantage, though, is that singletons can be handled polymorphically without forcing their users to assume that there is only one instance
Feb 17, 2010
The primary reason you wouldn't use a Singleton as a static class has to do with the potential for multi-threading issues. Note the following quote from http://msdn.microsoft.com/en-us/library/ms998558.aspx.