Quelles sont les différences entre Partagé et Statique?
Je suis un développeur C#, mais j'ai hérité d'un héritage VB application aujourd'hui avec 0 de la documentation, afin que jamais. J'ai commencé à lire le code de référence et le liste de mots-clés VB toutes les 5 secondes.
Je suppose que je ne comprends pas la distinction entre Shared
et Static
.
La lecture de ce post: https://stackoverflow.com/a/1980293/1189566
Il déclare:
VB n'a pas
static
, il ashared
Mais vous pouvez le voir dans la liste des mots-clés ci-dessus, Static
est un mot clé réservé. Il ressemble à Static
n'est applicable qu'aux champs, où que Shared
peut être sur une méthode ou un champ?
Je suppose que, finalement, je me suis juste en espérant que quelqu'un pourrait augmenter en fonction de la réponse je l'ai lié à fournir plus de détails et pour une VB noob.
Par exemple, dire que j'ai eu cette
public class MyClass
Dim myVar as Integer = 1
public shared sub UpdateMyVar()
myVar = 2
end sub
end class
public class MyOtherClass
Dim cOne = New MyClass()
Dim cTwo = New MyClass()
cOne.UpdateMyVar()
txtMyTextBox.Text = cTwo.myVar.ToString()
end class
Veuillez pardonner les questions de syntaxe. Supposons que ce code compile. J'ai littéralement tout juste de commencer à parcourir le code d'une heure et demi.
Serait cTwo.myVar
être 1
ou 2
? Je devine 2
depuis Shared
semble affecter l'ensemble des instances d'une classe? Cela semble terriblement dangereux.
Vous ne pouvez pas affecter un non-variable partagée à partir d'une méthode partagée.
OriginalL'auteur sab669 | 2014-06-19
Vous devez vous connecter pour publier un commentaire.
L'équivalent du C#
Static
méthode modificateur estShared
dans VB.netL'équivalent le plus proche du C#
Static
classe modificateur dans VB.Net est unModule
La
Static
mot-clé dans VB.NET définit une variable locale qui n'existe que pour la durée de vie du processus. Il n'y a pas d'équivalent de ce en C#.Pour une grande référence de la comparaison entre les deux, voir ce lien: https://www.harding.edu/fmccown/vbnet_csharp_comparison.html
OriginalL'auteur Matt Wilko
Pour VB.Net vous utilisez partagé exactement comme Statique est utilisé en C#, mais VB.Net a un mot-clé static et il est utilisé pour conserver la valeur d'une variable, même après la méthode de l'appel est terminé. Donc, la prochaine fois que vous appelez une méthode qu'il va avoir sa valeur précédente. MSDN a une explication plus détaillée ici - http://msdn.microsoft.com/en-us/library/z2cty7t8.aspx
À partir du lien il y a quelques comportements intéressants:
OriginalL'auteur Wade73