Table des matières:
Vidéo: So You Want To Be a Game Designer - Career Advice for Making Games - Extra Credits 2024
VB. Les programmes NET sont subdivisés en zones, tout comme les États-Unis sont divisés en États, comtés et villes. Tout comme les agents d'application de la loi ont différentes tailles de juridictions (les flics de la ville, les troupes d'État, et le FBI, qui peuvent aller n'importe où), VB. Les lignes NET de programmation ont des plages d'influence. Cette portée d'influence, appelée portée, s'applique principalement aux variables (mais peut également s'appliquer aux procédures - sous-fonctions et fonctions - ainsi qu'aux classes entières).
Accéder à une variable
Souvent, vous voulez interroger ou modifier la valeur d'une variable, mais le fait que cette variable vous soit accessible dépend de sa portée. Par exemple, vous pouvez toujours accéder à une variable depuis la même procédure (les fonctions, les sous-routines et les événements sont toutes des procédures).
Pour voir comment cela fonctionne, tapez ce qui suit dans votre module de code:
Private Sub Form1_Load (Expéditeur ByVal en tant que System.Object, ByVal et As System.EventArgs) Gère MyBase. Charge
Dim N As String = "Ceci"
MsgBox (N)
End Sub
Appuyez sur F5 et notez que le MsgBox n'a aucun problème à afficher la valeur de la variable N.
Il affiche Ceci. Tapez maintenant un autre sub juste en dessous du sous-formulaire Form1_Load dans la fenêtre de code:
Public TryIt ()
MsgBox (N)
End Sub
Notez qu'il existe une ligne en dents de scie sous la variable N dans le TryIt sous. Maintenez le pointeur de votre souris sur le dessus de la ligne en dents de scie et VB. NET affiche un message d'erreur vous indiquant que le nom «N» n'est pas déclaré.
Ce message d'erreur signifie que toutes les lignes de code dans le sous-élément TryIt (entre Public Sub et End Sub) ne peuvent pas lire (accéder) ou écrire (changer) la variable N. N a été déclaré (avec le Commande Dim) dans une procédure séparée, et donc la portée de N (sa plage d'accessibilité) est limitée aux lignes de code dans sa même procédure.
Bien que Dim soit le plus couramment utilisé, vous pouvez utiliser sept commandes de déclaration supplémentaires: Statique, Public, Protégé, Ami, Partagé, Ami protégé et Privé. Ces commandes supplémentaires spécifient la portée (à partir de laquelle vous pouvez accéder à une variable dans votre programme).
Notez que lorsque vous déclarez une variable dans une procédure, la variable ne fonctionne que dans cette procédure. Lorsque le programme exécute la procédure (ou l'événement), la variable prend vie, fait sa chose, puis meurt (disparaît) dès que la ligne End Sub est exécutée.
Lorsque les variables sont locales
Les variables qui ne vivent que dans une seule procédure sont appelées variables locales. Les variables locales ont deux qualités que vous devez mémoriser:
- Aucune programmation en dehors de leur propre procédure ne peut interagir avec elles, soit pour lire leur valeur, soit pour changer leur valeur. Leur portée est limitée à leur propre procédure.
- Lorsque VB termine l'exécution de la procédure dans laquelle il réside, sa valeur s'évapore. Si cette procédure est exécutée une seconde fois, quelle que soit la valeur de la variable locale, elle n'est plus là. Une exécution de la procédure est leur durée de vie. Dans certaines situations, vous souhaitez que la valeur d'une variable locale soit conservée. Dans ce cas, vous utilisez la commande Statique plutôt que la commande Dim:
Private Sub Form1_Load (Expéditeur ByVal en tant que System.Object, ByVal et System As EventArgs) Gère MyBase. Load
Dim n As Integer
Statique x As Integer
End Sub
Dans cet exemple, la variable n perd sa valeur lorsque End Sub est exécuté. Cependant, la variable x conserve sa valeur jusqu'à ce que le programme soit arrêté. Une autre façon de le mettre est la suivante: Lorsque vous utilisez la commande statique avec une variable locale, la valeur de cette variable est préservée pour la durée de vie de votre application. (Durée de vie signifie combien de temps quelque chose existe dans un programme.)
Que pensez-vous qu'il se passerait si vous placez deux boutons de commande sur votre formulaire, puis vous avez exécuté le programme et cliqué sur Command1, puis sur Command2, dans ce prochain programme?
Private Sub Button1_Click (Expéditeur ByVal en tant que System.Object, ByVal et As System.EventArgs) Handles Button1. Cliquez sur
Dim X comme entier
X = 12
X = X + 5
Fin Sub
Privé Sub Button2_Click (expéditeur ByVal en tant que système, objet, ByVal e en tant que système EventArgs) poignées Button2. Cliquez sur
Dim X comme entier
MsgBox (X)
End Sub
La boîte de message n'affiche rien. La variable X dans l'événement Click de Command1 est une variable complètement différente de l'événement X de Command2 dans Command2. Ils ont une portée locale et n'ont tout simplement pas de relation entre eux, pas plus de deux étrangers nommés Mike qui vivent dans le Bronx et ne se rencontrent jamais.
Mais que se passe-t-il si vous voulez que ces deux procédures puissent accéder et manipuler la même variable? Pour ce faire, vous définissez la variable en dehors de vos procédures. Essayez-le. Cliquez juste au-dessus de votre première procédure (juste au-dessus de la ligne Private Sub Form1_Load) dans la fenêtre de code pour y déplacer le curseur d'insertion.
Maintenant, tapez ce qui suit:
Dim x As Integer
C'est là que vous voulez placer toutes les variables que vous voulez donner à la portée du formulaire - en d'autres termes, permettre toutes les procédures dans ce formulaire (Form1, dans ce cas) pour pouvoir lire et modifier la variable. (La zone où vous placez les variables à l'échelle du formulaire était la zone Déclarations Générales, avant VB. NET.)
Maintenant, avec cette variable X Dimmed là-haut (en dehors) toutes les procédures Subs et autres, vous exécutez le même programme, cliquez sur Command1 et puis cliquez sur Command2, vous voyez le résultat que vous voulez voir: le nombre 17. Lorsque vous déclarez X à l'échelle du formulaire, les deux boutons peuvent accéder à cette variable X.Supprimez les deux instructions Dim qui ont précédemment déclaré X dans ces deux événements Button. Maintenant X = X + 5 et MsgBox (X) se réfèrent à la même variable nommée X.
Lorsqu'une variable a une portée à l'échelle du formulaire, elle est alors disponible pour toutes les procédures de ce formulaire. Cependant, il n'est pas disponible pour les procédures sous d'autres formes dans le projet.