Πίνακας περιεχομένων:
Βίντεο: What they won't teach you in calculus 2024
VB. Τα προγράμματα NET υποδιαιρούνται σε ζώνες, ακριβώς όπως οι Ηνωμένες Πολιτείες χωρίζονται σε κράτη, κομητείες και πόλεις. Ακριβώς όπως οι πράκτορες επιβολής του νόμου έχουν διαφορετικά μεγέθη δικαιοδοσιών (αστυνομικοί της πόλης, κρατικοί στρατιώτες και FBI, που μπορούν να πάνε οπουδήποτε), VB. Οι γραμμές NET του προγραμματισμού έχουν περιοχές επιρροής. Αυτή η περιοχή επιρροής, που ονομάζεται πεδίο , ισχύει κυρίως για τις μεταβλητές (αλλά μπορεί επίσης να εφαρμοστεί σε διαδικασίες - subs και λειτουργίες - καθώς και ολόκληρες τάξεις).
Πρόσβαση σε μια μεταβλητή
Συχνά θέλετε να ερωτήσετε ή να αλλάξετε την τιμή σε μια μεταβλητή, αλλά η πρόσβαση ή όχι αυτής της μεταβλητής εξαρτάται από το πεδίο εφαρμογής της. Για παράδειγμα, μπορείτε πάντα να έχετε πρόσβαση σε μια μεταβλητή από την ίδια διαδικασία (λειτουργίες, υπορουτίνες και συμβάντα είναι όλες οι διαδικασίες).
Για να δείτε πώς λειτουργεί αυτό, πληκτρολογήστε τα ακόλουθα στη λειτουργική μονάδα κώδικα:
Private Sub Form1_Load (ByVal sender as System Object, ByVal e As System) EventArgs) Handles MyBase. Φόρτωση
Dim N Ως String = "Αυτό"
MsgBox (N)
End Sub
Πατήστε το πλήκτρο F5 και παρατηρήστε ότι το MsgBox δεν παρουσιάζει πρόβλημα στην εμφάνιση της τιμής της μεταβλητής N.
Εμφανίζει το This. Τώρα πληκτρολογήστε ένα άλλο υπομέτωπο ακριβώς κάτω από το υπομενού Form1_Load στο παράθυρο κώδικα:
Public Sub TryIt ()
MsgBox (N)
End Sub
Παρατηρήστε ότι υπάρχει μια πριονωτή γραμμή κάτω από τη μεταβλητή N στο TryIt sub. Κρατήστε το δείκτη του ποντικιού στην κορυφή της γραμμής πριονωτού και VB. Το NET εμφανίζει ένα μήνυμα σφάλματος που σας λέει ότι το όνομα 'N' δεν δηλώθηκε.
Παρόλο που το Dim είναι το πιο συνηθισμένο, μπορείτε να χρησιμοποιήσετε επτά επιπλέον εντολές δήλωσης: Στατική, Δημόσια, Προστατευόμενη, Φίλοι, Κοινόχρηστος, Προστατευμένος φίλος και Ιδιωτικός. Αυτές οι πρόσθετες εντολές καθορίζουν το πεδίο εφαρμογής (από ποια σημεία στο πρόγραμμα μπορεί να αποκτηθεί πρόσβαση μια μεταβλητή).Σημειώστε ότι όταν δηλώνετε μια μεταβλητή μέσα σε μια διαδικασία, η μεταβλητή λειτουργεί μόνο μέσα σε αυτή τη διαδικασία. Όταν το πρόγραμμα εκτελεί τη διαδικασία (ή ένα συμβάν), η μεταβλητή έρχεται στη ζωή, κάνει το πράγμα της και στη συνέχεια πεθαίνει (εξαφανίζεται) μόλις εκτελεστεί το End Sub line.
Όταν οι μεταβλητές είναι τοπικές
Οι μεταβλητές που ζουν μόνο μέσα σε μια ενιαία διαδικασία ονομάζονται
τοπικές μεταβλητές. Οι τοπικές μεταβλητές έχουν δύο ιδιότητες που πρέπει να απομνημονεύσετε: Κανένας προγραμματισμός εκτός της δικής τους διαδικασίας δεν μπορεί να αλληλεπιδράσει μαζί τους, είτε για να διαβάσει την αξία τους είτε για να αλλάξει την αξία τους.
- Το πεδίο εφαρμογής τους περιορίζεται στη δική τους διαδικασία. Όταν η VB τερματίσει την εκτέλεση της διαδικασίας στην οποία διαμένουν, η αξία τους εξατμίζεται.
- Εάν αυτή η διαδικασία εκτελείται για δεύτερη φορά, οποιαδήποτε τιμή δεν υπάρχει πλέον στην τοπική μεταβλητή όταν αυτή περιέχεται. Μια εκτέλεση της διαδικασίας είναι η διάρκεια ζωής τους. Υπάρχουν κάποιες καταστάσεις στις οποίες θέλετε να διατηρηθεί η τιμή μιας τοπικής μεταβλητής. Σε αυτές τις περιπτώσεις, χρησιμοποιείτε τη στατική εντολή και όχι την εντολή Dim: Private Sub Form1_Load (ByVal αποστολέας ως σύστημα, Object, ByVal e As System.) EventArgs) Handles MyBase. Load
Dim n ως ακέραιο
Στατικό x Ως ακέραιο
End Sub
Σε αυτό το παράδειγμα, η μεταβλητή n χάνει την τιμή της όταν εκτελείται το End Sub. Ωστόσο, η μεταβλητή x διατηρεί την τιμή της μέχρι να τερματιστεί το πρόγραμμα. Ένας άλλος τρόπος τοποθέτησης είναι το εξής: Όταν χρησιμοποιείτε τη στατική εντολή με μια τοπική μεταβλητή, η τιμή αυτής της μεταβλητής διατηρείται για όλη τη διάρκεια της εφαρμογής σας. (Ο χρόνος ζωής σημαίνει πόσο καιρό υπάρχει κάτι σε ένα πρόγραμμα.)
Τι πιστεύετε ότι θα συνέβαινε εάν βάλατε δύο κουμπιά εντολών στη φόρμα σας και στη συνέχεια εκτελέσατε το πρόγραμμα και κάνατε κλικ στο Command1 πρώτα και στη συνέχεια κάντε κλικ στο Command2 αυτό το επόμενο πρόγραμμα;
Private Sub Button1_Click (ByVal αποστολέας ως σύστημα, αντικείμενο, ByVal e ως σύστημα, EventArgs) Χειριστήρια Button1. Κάντε κλικ στο κουμπί
Dim X ως ακέραιο
X = 12
X = X + 5
End Sub
Private Sub Button2_Click (ByVal sender as System Object, ByVal e As System.. Κάντε κλικ στο κουμπί
Dim X ως ακέραιο
MsgBox (X)
End Sub
Το πλαίσιο μηνύματος δεν εμφανίζει τίποτα. Η μεταβλητή X στο συμβάν Click του Command1 είναι μια εντελώς διαφορετική μεταβλητή από το X στο συμβάν Click του Command2. Έχουν τοπική εμβέλεια και απλά δεν έχουν καμία σχέση μεταξύ τους, όχι περισσότερο από δύο ξένοι που ονομάζονται Mike που τυχαίνει να ζουν στο Bronx και ποτέ δεν συναντιούνται.
Αλλά τι εάν θέλετε και οι δύο αυτές διαδικασίες να έχουν πρόσβαση και να χειρίζονται την ίδια μεταβλητή; Για να το κάνετε αυτό, ορίζετε τη μεταβλητή εκτός των διαδικασιών σας. Δοκίμασέ το. Κάντε κλικ ακριβώς πάνω από την πρώτη σας διαδικασία (ακριβώς πάνω από τη γραμμή Private Sub Form1_Load) στο παράθυρο κώδικα για να μετακινήσετε τον δρομέα εισαγωγής εκεί.
Τώρα πληκτρολογήστε τα εξής:
Dim x ως ακέραιο
Στο σημείο αυτό θέλετε να θέσετε οποιεσδήποτε μεταβλητές που θέλετε να δώσετε στο πεδίο εφαρμογής - με άλλα λόγια, για να επιτρέψετε όλες τις διαδικασίες υπό τη μορφή αυτή, σε αυτή την περίπτωση) να είναι σε θέση να διαβάζει και να τροποποιεί τη μεταβλητή. (Η περιοχή όπου βάζετε τις μεταβλητές σε όλη τη φόρμα ονομάζονταν περιοχή γενικών δηλώσεων, πριν από το VB. NET.)
Τώρα, με αυτή τη μεταβλητή X Διαγραμμένο εκεί πάνω (εκτός) όλες τις Subs και άλλες διαδικασίες, όταν μπορείτε να εκτελέσετε το ίδιο πρόγραμμα, κάντε κλικ στο στοιχείο Command1 και, στη συνέχεια, κάντε κλικ στο κουμπί Command2, βλέπετε το αποτέλεσμα που θέλετε να δείτε: τον αριθμό 17. Όταν δηλώνετε ότι το X έχει πλάτος σε μορφή, τα δύο κουμπιά έχουν πρόσβαση σε αυτήν τη μεταβλητή X.Διαγράψτε τις δύο εντολές Dim που δηλώνουν προηγουμένως X μέσα σε αυτά τα δύο συμβάντα Κουμπί. Τώρα, τα X = X + 5 και MsgBox (X) αναφέρονται και στην ίδια μεταβλητή που ονομάζεται X.
Όταν μια μεταβλητή έχει πεδίο ευρείας μορφής, τότε είναι διαθέσιμη σε όλες τις διαδικασίες αυτής της φόρμας. Ωστόσο, δεν είναι διαθέσιμα για τις διαδικασίες σε οποιαδήποτε άλλη μορφή του έργου.