Une classe statique ne peut pas être instanciée (techniquement, mais seulement une fois), et le constructeur statique est appelé "habituellement" lors du premier accès à la classe, ce qui peut être difficile à suivre et à coordonner. Les classes statiques sont bonnes si vous voulez une classe qui rassemble simplement des méthodes utilitaires. Les maths dans le framework .net sont un bon exemple. En outre, ils sont utiles pour extension methods. D'ailleurs je ne les utilise pas.
Si vous avez besoin d'une seule instance et que vous ne voulez pas être lié aux contraintes d'une classe statique, le modèle Singleton est très utile. A nice article sur la différence entre les Singletons et les classes statiques.
Et bien sûr, une classe non statique doit être instanciée, stockée dans une variable et peut être instanciée plusieurs fois.
Exemple:
Une classe statique, juste des méthodes auxiliaires pour le chargement d'un fichier:
static class TextureHelper
{
public static byte[] LoadFromFile(string aFileName);
}
un Singleton qui est le principal point de créer des textures.
public sealed class TextureManager
{
public static TextureManager Instance{get;set;}
public Texture CreateTexture();
}
une texture réelle, dont je pourrais avoir beaucoup de dans mon application.
public class Texture
{
}
Vous pouvez également utiliser directement 'NomClasse.NomMembre' si NomNom est statique mais que la classe ne l'est pas. Rendre les classes statiques lorsque vous n'en créez pas (et ne le créeront jamais). C'est un must pour les classes d'extension. –
Donc, il n'y a jamais qu'un seul nom de membre? Utiliser des classes statiques comment implémenter 'Personne'? –
Commencez par http://stackoverflow.com/questions/576853/what-is-the-use-of-a-static-class – V4Vendetta