2013-02-19 4 views
0

Eh bien, je sais que la classe statique est allouée dans "Heap haute fréquence" et ils sont construits pour les fins d'accès rapide et tout sauf la chose ce qui se passe à l'intérieur? Pourquoi ils ne sont pas autorisés à instancier.Pourquoi la classe statique ne peut pas être instanciée

En fait était intéressé de savoir ce qui se passe en interne lorsque le compilateur voit le mot « statique »

+2

Les classes statiques sont "statiques" elles ne dépendent pas de variables d'instance et n'ont pas d'état propre. – TGlatzer

+4

Cela me rappelle la question «pourquoi les classes scellées ne peuvent pas être héritées» ... –

+1

La question n'a aucun sens. Le mot-clé 'static' a été inventé pour créer une classe qui ne peut pas et ne doit pas être instanciée. Donc, demander pourquoi il en est ainsi est une référence circulaire. –

Répondre

2

Static Classes and Static Class Members (C# Programming Guide)

Une classe statique est fondamentalement identique à une classe non statique, mais il est une différence: ne peut pas être instancié une classe statique . Dans les autres mots , vous ne pouvez pas utiliser le nouveau mot clé pour créer une variable du type de classe . Étant donné qu'il n'existe aucune variable d'instance, vous accédez aux membres d'une classe statique en utilisant le nom de classe lui-même.

+0

S'il vous plaît voir l'edit @Habib – Shrivallabh

+0

@Shrivallabh, c'est une question différente , 'static' mot-clé aurait un sens différent avec la classe, les méthodes, les propriétés etc – Habib

+0

Ya voulait savoir la même chose avec la classe et tout le monde a voté :( – Shrivallabh

3

Il est impossible de créer des instances d'une classe statique.

Les classes statiques et les membres de classe sont utilisés pour créer des données et des fonctions accessibles sans créer d'instance de la classe. Les membres de classes statiques peuvent être utilisés pour séparer des données et des comportements qui sont indépendants de toute identité d'objet: les données et les fonctions ne changent pas indépendamment de ce qui arrive à l'objet. Les classes statiques peuvent être utilisées lorsqu'il n'y a pas de données ou de comportement dans la classe qui dépend de l'identité de l'objet.

Les principales caractéristiques d'une classe statique sont:

  • Ils ne contiennent que des membres statiques.
  • Ils ne peuvent pas être instanciés.
  • Ils sont scellés.
  • Ils ne peuvent pas contenir de constructeurs d'instances (Guide de programmation C#).
  • Liste item

http://msdn.microsoft.com/en-gb/library/79b3xss3(v=vs.80).aspx

Questions connexes