Maison  >  Article  >  développement back-end  >  Introduction à la différence entre les méthodes statiques et non statiques en C#

Introduction à la différence entre les méthodes statiques et non statiques en C#

黄舟
黄舟original
2017-09-06 13:49:231449parcourir

La différence entre les méthodes statiques et les méthodes non statiques :

1. Les méthodes statiques peuvent être appelées sans instanciation de classe, alors que les méthodes non statiques doivent être instanciées avant de pouvoir être appelées

2. Les méthodes statiques ne peuvent accéder qu'aux membres et méthodes statiques, et les méthodes non statiques peuvent y accéder

 3. Les méthodes statiques ne peuvent pas être marquées comme prioritaires, ce qui empêche les classes dérivées de les remplacer, mais elles accessible ;

 4 .Les membres statiques sont initialisés la première fois qu'ils sont utilisés. Les membres non statiques sont continus en termes d'allocation de mémoire lorsqu'un objet est créé, tandis que les membres non statiques sont discrets dans le stockage en mémoire. Par conséquent, en termes de vitesse d'appel entre les méthodes statiques et les méthodes non statiques, la vitesse des méthodes statiques sera la même. augmentez certainement. Dépêchez-vous, car les méthodes non statiques doivent être instanciées et allouer de la mémoire, mais pas les méthodes statiques, mais la différence de vitesse est négligeable

Quand utiliser les méthodes statiques et quand utiliser les instances Méthode :

1. Une méthode n'a rien à voir avec l'objet instance de sa classe et ne s'appuie pas sur l'instance de new, alors elle doit être statique

2. Il ne nécessite pas de concepts orientés objet. Utilisez parfois des méthodes statiques ; par exemple, animaux -> RUN, car vous pouvez étendre la course pour chats et les courses pour chiens, vous devez alors utiliser des méthodes non statiques

À propos de la sécurité des threads :

Il n'existe qu'une seule instance d'une méthode statique. Lorsqu'il existe une variable statique, pour une concurrence élevée, toutes les exécutions simultanées utiliseront cette méthode et la valeur de la variable statique changera. causant des problèmes ;

Bien entendu, l'insécurité de la concurrence n'a rien à voir avec la méthode elle-même, mais avec la ressource partagée. Par exemple, si une variable est exploitée par chaque thread, sa valeur peut être modifiée si plusieurs threads. (la concurrence signifie en fait plusieurs threads) faites-le fonctionner, la valeur prête à confusion et il y a un problème

Pourquoi utiliser des méthodes non statiques

Ceci est un méthode écrite par moi. Elle a été écrite à l'origine comme une méthode statique. Il n'y a pas de raison pour laquelle les autres ne veulent pas instancier et peuvent enregistrer une ligne de code, et ils n'ont pas pensé à la différence entre statique et non. -statique==! ~~; Bien sûr, il est également possible d'écrire des méthodes non statiques ;

Raisons

1. Étant donné que la méthode doit être appelée à plusieurs reprises, passer à new à chaque fois entraînera une surcharge de mémoire. , utilisez static La méthode sera toujours en mémoire et il n'est pas nécessaire de réinitialiser les données dans un nouvel espace

2. Il n'est pas nécessaire de faire OO; 3. La méthode ne dépend pas du contenu de new

La méthode statique la plus classique, essentiellement toutes les méthodes statiques de DBHelp

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn