En C # Quelle est la différence entre:
public static class ClassName {}
Et:
public class ClassName {}
Une classe statique ne peut pas être instanciée et ne peut contenir que des membres statiques. Par conséquent, les appels d'une classe statique sont comme: MyStaticClass.MyMethod(...)
ou MyStaticClass.MyConstant
.
Une classe non statique peut être instanciée et peut contenir des éléments non statiques (constructeurs d'instances, destructeurs, indexeurs). Un membre non statique d'une classe non statique est appelable uniquement via un objet:
MyNonStaticClass x = new MyNonStaticClass(...);
x.MyNonStaticMethod(...);
Premièrement, un commentaire sur une réponse posée sur ce que signifie "statique". En termes de C #, "statique" signifie "relatif au type lui-même, plutôt qu'une instance du type". Vous accédez à un élément statique (à partir d'un autre type) à l'aide du nom de type au lieu d'une référence ou d'une valeur. Par exemple:
// Static method, so called using type name
Guid someGuid = Guid.NewGuid();
// Instance method, called on a value
string asString = someGuid.ToString();
Maintenant, classes statiques ...
Les classes statiques sont généralement utilisées comme des classes "utilitaires". L'exemple canonique est probablement System.Math
. Il n'a pas de sens de créer une instance de mathématiques - ça "est". Quelques règles (les deux "peuvent" et "ne peuvent pas"):
object
. Vous ne pouvez pas spécifier de type de base différent ou rendre la classe statique implémenter une interface.abstract
vous-même.sealed
vous-même.Une classe statique ne peut également être héritée du fait que d'une classe non statique avec des membres statiques peut être héritée.
public static class ClassName {}
Une classe statique est comme une variable globale: vous pouvez l'utiliser n'importe où dans votre code sans les instancier. Par exemple: Nom de classe. Après l'opérateur DOT, vous pouvez utiliser n'importe quelle propriété ou fonction de celui-ci.
public class ClassName {}
Mais si vous avez une classe non statique, vous devez créer une instance de cette classe. Par exemple:
ClassName classNameObject = new ClassName();
Toutes les méthodes/propriétés d'une classe statique DOIGNE Soyez statique, tandis qu'une classe "normale" peut contenir un mélange d'instance et de méthodes statiques.
La classe statique peut contenir uniquement des membres statiques.
Un membre statique peut être utilisé sans instantifier d'une classe en premier.
Vous ne pouvez pas instancier (créer des objets de) une classe statique. Et il ne peut contenir que des membres statiques.
Exemple: System.Math
http://www.javaworld.com/javaworld/javaqa/1999-08/01-qa-static2.html - Très bon article à ce sujet. Ceci est pour Java. Mais je pense que le concept devrait aussi devrait aussi en C #.
Les classes statiques et les membres sont utilisés pour créer des données et des méthodes pouvant être consultées sans créer d'instance (à l'aide du mot clé new
, ils ne peuvent pas avoir de constructeur) de la classe.
Les classes statiques peuvent être déclarées lorsqu'il n'y a aucune dépendance à l'égard de sa propre identité d'objet, une classe statique ne doit donc contenir que des membres statiques.
Ces classes sont chargées par le CLR lorsque le programme ou l'espace de noms contenant la classe est chargé.
Ils sont également scellés, ne peuvent pas être hérités.
variable statique en c
une variable locale à une classe comme variables automatiques, mais la variable statique ne disparaît pas car la fonction n'est plus active. Les valeurs persist.Ifl contrôle revient, les variables statiques ont la même valeur
Fonction statique dans c fonctions qui ne sont pas visibles pour fonctionner dans d'autres fichiers.
* Les membres de données statiques au CPP * Les membres de données peuvent être des variables ou des fonctions dans le CPP statique s'appliquent aux deux membres de données que la classe elle-même peut être statique "Il n'y a que Une copie des éléments de données statiques partagés par tous les objets de cette classe "Les membres de données statiques peuvent accéder à des membres de données statiques
classe statique Cette classe ne peut pas instancier des objets