Variables statiques en C #
-
20-08-2019 - |
Question
En C #, existe-t-il un moyen de mettre une variable statique dans une méthode telle que VB.Net?
Static myCollection As Collection
La solution
Pourquoi C # ne prend-il pas en charge la méthode statique variables?
Q: En C ++, il est possible d’écrire un variable de méthode statique, et ont un variable accessible uniquement de l'intérieur de la méthode. C # ne le fait pas fournir cette fonctionnalité. Pourquoi?
R: Il y a deux raisons pour lesquelles C # ne le fait pas avoir cette fonctionnalité.
Tout d’abord, il est possible d’avoir presque le même effet en ayant un statique de niveau classe et méthode d'ajout la statique nécessiterait une augmentation complexité.
Deuxièmement, la statique au niveau de la méthode est un peu notoire pour causer problèmes lorsque le code est appelé à plusieurs reprises ou à partir de plusieurs threads, et puisque les définitions sont dans le méthodes, il est plus difficile de trouver le définitions.
Autres conseils
Non, il n'y en a pas, mais en quoi est-ce différent d'avoir une variable statique au niveau de la classe?
En fait, si vous regardez comment le partage est implémenté, il s'agit d'un compilateur astuce qui crée un champ statique sur la classe.
La chose la plus proche de de VB.NET Static
consiste à créer un champ dans le type actuel. Autre que cela, C # n’a pas d’équivalent.
Non, le CLR ne le supporte pas et VB.NET a recours aux astuces du compilateur pour le permettre. Ugh.
Je suis presque sûr que l'équivalent C # est const
: donc:
public const Collection myCollection = new Collection();
Je ne suis pas trop familier avec VB.NET, je pourrais donc être en dehors de la base, mais cela vous permettra de définir une variable qui ne peut pas être modifiée.