I wonder what's the difference between a Singleton class and a Static
class?
I would say that the biggest difference is in what they are
intended for.
A singleton class is a real OO class that can be instantiated, but
is designed so that only one instance can exist within the
app.
A static class is a non-OO class that is intended for
procedural programming style.
Well - it is also used for extension methods, which is OO'ish,
but that is just MS's pick of syntax for this featre.
By making your choice you send a signal to maintenance
programmers what the class is.
Besides that a singleton class can implement an interface,
which can be useful.
A singleton class can also participate in
(implementation) inheritance, but I would strongly
recommend you not to try that. It is usually a very
painful experience.
Arne