Possible Duplicate:
What is the use of a static class
What are the benefits of declaring a static class?
public static class MyStaticClass
{
}
Are there any other than "it can't be instantiated"?
Why else would you want a static class, for what reasons should a class be static?
Is "any class should be declared as static unless it's meant to be instantiated" a good rule of thumb?
Static classes are useful as containers for utility functions and constants. If the class does not represent an object and is used only for this purpose then it makes sense to declare it as static.
If a class has the static modifier then:
The first point is the most important though, IMO. You're communicating intent to both the compiler and other developers.
An utility class, which only declares static methods (like System.IO.File) is not ment to be instantiated, so its usually static.
And you're right, I find it to be a good use. Singleton is different, as it is meant to be privately instanciated.
You need a static class to create extension methods.
Taken from MSDN directly. It explains it much better than I can. The key fact here is that the object persists throughout the life.
Extention methods also have to be written in static classes. I tend to use these for string extentions, or collection extentions.