Επισκόπηση των μερικών τάξεων στη Visual Basic .NET

Μερικές τάξεις είναι ένα χαρακτηριστικό του VB.NET που χρησιμοποιείται σχεδόν παντού, αλλά δεν υπάρχουν πολλά για αυτό. Αυτό μπορεί να οφείλεται στο γεγονός ότι δεν υπάρχουν πολλές προφανείς "προγραμματιστές" εφαρμογές γι 'αυτό ακόμα. Η κύρια χρήση είναι ο τρόπος με τον οποίο οι λύσεις ASP.NET και VB.NET δημιουργούνται στο Visual Studio όπου είναι ένα από εκείνα τα χαρακτηριστικά που συνήθως είναι "κρυμμένα".

Μια μερική κλάση είναι απλώς ένας ορισμός κλάσης που χωρίζεται σε περισσότερα από ένα φυσικά αρχεία. Οι μερικές κλάσεις δεν κάνουν τη διαφορά στον μεταγλωττιστή, επειδή όλα τα αρχεία που αποτελούν μια κλάση απλώς συγχωνεύονται σε μια ενιαία οντότητα για τον μεταγλωττιστή. Δεδομένου ότι τα μαθήματα είναι απλώς συγχωνευμένα και συγκεντρωμένα, δεν μπορείτε να συνδυάσετε γλώσσες. Δηλαδή, δεν μπορείτε να έχετε μία μερική τάξη στο C # και άλλη στην VB. Δεν μπορείτε να εκτελέσετε συναθροίσεις με μερικές τάξεις. Όλοι πρέπει να είναι στην ίδια συνέλευση.

Αυτό χρησιμοποιείται πολύ από το ίδιο το Visual Studio, ειδικά σε ιστοσελίδες όπου είναι μια βασική ιδέα στα αρχεία "κώδικα πίσω". Θα δούμε πώς λειτουργεί αυτό σε ένα Visual Studio, αλλά κατανοώντας τι άλλαξε στο Visual Studio 2005 όταν εισήχθη είναι ένα καλό σημείο εκκίνησης.

instagram viewer

Στο Visual Studio 2003, ο "κρυφός" κώδικας για μια εφαρμογή των Windows ήταν όλα σε μια ενότητα που ονομάζεται Περιοχή με την ένδειξη "Windows generated Designer generated code". Αλλά ήταν πάντα εκεί στο ίδιο αρχείο και ήταν εύκολο να δείτε και να αλλάξετε τον κώδικα στην Περιφέρεια. Ολα του κώδικα είναι διαθέσιμη στην εφαρμογή σας στο .NET. Αλλά επειδή μερικά από αυτά είναι κώδικας που πρέπει ποτέ δεν το χάος, κρατήθηκε σε εκείνη την κρυμμένη περιοχή. (Οι περιοχές μπορούν ακόμα να χρησιμοποιηθούν για τον δικό σας κώδικα, αλλά το Visual Studio δεν τις χρησιμοποιεί πια.)

Στο Visual Studio 2005 (Framework 2.0), η Microsoft έκανε περίπου το ίδιο πράγμα, αλλά έκρυψαν τον κώδικα σε διαφορετικό σημείο: μια μερική κλάση σε ένα ξεχωριστό αρχείο. Μπορείτε να δείτε αυτό στο κάτω μέρος της εικόνας παρακάτω:


Κάντε κλικ εδώ για να εμφανίσετε την εικόνα
Κάντε κλικ στο κουμπί Επιστροφή στο πρόγραμμα περιήγησής σας για να επιστρέψετε

Μία από τις διαφορές σύνταξης μεταξύ Visual Basic και C # αυτή τη στιγμή είναι ότι το C # το απαιτεί όλα μερικές λέξεις-κλειδιά Μερικός αλλά η VB δεν το κάνει. Η κύρια φόρμα σας στο VB.NET δεν έχει ειδικά προκριματικά. Ωστόσο, η προεπιλεγμένη εντολή κλάσης για μια κενή εφαρμογή των Windows μοιάζει με αυτό χρησιμοποιώντας το C #:

δημόσια μερική τάξη Έντυπο1: Έντυπο

Οι επιλογές σχεδιασμού της Microsoft για τέτοια πράγματα είναι ενδιαφέρουσες. Όταν ο Paul Vick, σχεδιαστής VB της Microsoft, έγραψε για αυτή την επιλογή σχεδίου στο blog του Panopticon Central, η συζήτηση για τα σχόλια συνεχίστηκε για σελίδες και σελίδες.

Ας δούμε πώς όλα αυτά λειτουργούν με πραγματικό κώδικα στην επόμενη σελίδα.

Στην προηγούμενη σελίδα επεξηγήθηκε η έννοια των μερικών τάξεων. Μετατρέπουμε μια μόνο κλάση σε δύο μερικές κατηγορίες σε αυτή τη σελίδα.

Ακολουθεί μια τάξη παραδείγματος με μία μέθοδο και μία ιδιότητα σε ένα έργο VB.NET

 Κοινή κλάση κοινής κλάσης. Ιδιωτική m_Property1 ως συμβολοσειρά. Δημόσιο Νέο (ByVal Value ως String) m_Property1 = Τιμή. End Sub. Δημόσια Sub Met.1 () MessageBox. Εμφάνιση (m_Property1) End Sub. Property Property1 () Ως συμβολοσειρά. Παίρνω. Επιστροφή m_Property1. Τέλος Πάρτε. Ορισμός (τιμή ByVal ως String) m_Property1 = τιμή. Ορισμός τέλους. End Property. Τέλος κλάσης 

Αυτή η κλάση μπορεί να ονομάζεται (για παράδειγμα, στον κώδικα συμβάντος κλικ για ένα αντικείμενο κουμπιού) με τον κώδικα:

Dim ClassInstance ως νέα _. CombinedClass ("Σχετικά με τις μερικές κλάσεις Visual Basic") ClassInstance. Μέθοδος1 ()

Μπορούμε να διαχωρίσουμε τις ιδιότητες και τις μεθόδους της κλάσης σε διαφορετικά φυσικά αρχεία προσθέτοντας δύο νέα αρχεία κλάσης στο έργο. Ονομάστε το πρώτο φυσικό αρχείο Partial.methods.vb και ονομάστε το δεύτερο Partial.properties.vb. Τα φυσικά ονόματα αρχείων πρέπει να είναι διαφορετικά, αλλά τα μερικά ονόματα κλάσεων θα είναι τα ίδια, έτσι ώστε η Visual Basic μπορεί να τα συγχωνεύσει κατά τη συμπλήρωση του κώδικα.

Δεν είναι μια απαίτηση σύνταξης, αλλά οι περισσότεροι προγραμματιστές ακολουθούν το παράδειγμα στο Visual Studio που χρησιμοποιεί τα "διακεκομμένα" ονόματα για αυτές τις κλάσεις. Για παράδειγμα, το Visual Studio χρησιμοποιεί το προεπιλεγμένο όνομα Form1.Designer.vb για τη μερική κλάση για μια φόρμα των Windows. Θυμηθείτε να προσθέσετε την Μερική λέξη-κλειδί για κάθε κλάση και να αλλάξετε το όνομα εσωτερικής κλάσης (όχι το όνομα αρχείου) στο ίδιο όνομα. Χρησιμοποίησα το όνομα της εσωτερικής κλάσης: PartialClass.

Η παρακάτω εικόνα δείχνει όλο τον κώδικα για το παράδειγμα και τον κώδικα σε δράση.


Κάντε κλικ εδώ για να εμφανίσετε την εικόνα
Κάντε κλικ στο κουμπί Επιστροφή στο πρόγραμμα περιήγησής σας για να επιστρέψετε

Το Visual Studio "αποκρύπτει" μερικές κατηγορίες όπως το Form1.Designer.vb. Στην επόμενη σελίδα, μαθαίνουμε πώς να το κάνουμε αυτό με τις μερικές τάξεις που μόλις δημιουργήσαμε.

Οι προηγούμενες σελίδες εξηγούν την έννοια των μερικών τάξεων και δείχνουν πώς να τις κωδικοποιούν. Αλλά η Microsoft χρησιμοποιεί ένα ακόμα κόλπο με τις μερικές κατηγορίες που δημιουργούνται από το Visual Studio. Ένας από τους λόγους για τους οποίους τα χρησιμοποιούμε είναι να χωρίσουμε τη λογική εφαρμογής από τον κώδικα διεπαφής χρήστη (UI). Σε ένα μεγάλο έργο, αυτοί οι δύο τύποι κώδικα μπορεί να δημιουργηθούν ακόμη και από διαφορετικές ομάδες. Αν βρίσκονται σε διαφορετικά αρχεία, μπορούν να δημιουργηθούν και να ενημερωθούν με μεγαλύτερη ευελιξία. Αλλά η Microsoft κάνει ένα ακόμη βήμα και αποκρύπτει και τον μερικό κώδικα στον Explorer Solution. Ας υποθέσουμε ότι θέλαμε να αποκρύψουμε τις μεθόδους και τις ιδιότητες των μερικών τάξεων σε αυτό το έργο; Υπάρχει ένας τρόπος, αλλά δεν είναι προφανές και η Microsoft δεν σας λέει πώς.

Ένας από τους λόγους για τους οποίους δεν βλέπετε τη χρήση μερικών τάξεων που συνιστά η Microsoft είναι ότι δεν υποστηρίζεται πραγματικά πολύ καλά στο Visual Studio ακόμα. Για να αποκρύψετε τις κατηγορίες Partial.methods.vb και Partial.properties.vb που μόλις δημιουργήσαμε, για παράδειγμα, απαιτείται αλλαγή στην vbproj αρχείο. Αυτό είναι ένα αρχείο XML που δεν εμφανίζεται καν στην Εξερεύνηση λύσεων. Μπορείτε να το βρείτε με την Εξερεύνηση των Windows μαζί με τα άλλα αρχεία σας. Ένα αρχείο vbproj εμφανίζεται στην παρακάτω εικόνα.


Κάντε κλικ εδώ για να εμφανίσετε την εικόνα
Κάντε κλικ στο κουμπί Επιστροφή στο πρόγραμμα περιήγησής σας για να επιστρέψετε

Ο τρόπος που θα κάνουμε αυτό είναι να προσθέσουμε μια "ρίζα" κλάση που είναι εντελώς άδειο (μόνο η κεφαλίδα Κλάσης και η κλάση Τελικής κλάσης έχουν μείνει) και εξαρτώνται και οι δύο μερικές τάξεις από αυτήν. Προσθέστε λοιπόν μια άλλη τάξη με το όνομα PartialClassRoot.vb και ξανά αλλάξτε το εσωτερικό όνομα σε PartialClass για να ταιριάζει με τα δύο πρώτα. Αυτή τη φορά, έχω δεν χρησιμοποίησε τη μερική λέξη μόνο για να ταιριάζει με τον τρόπο που το κάνει το Visual Studio.

Εδώ είναι όπου μια μικρή γνώση της XML θα έρθει σε πολύ βολικό. Δεδομένου ότι αυτό το αρχείο θα πρέπει να ενημερωθεί με μη αυτόματο τρόπο, θα πρέπει να έχετε τη σύνταξη XML σωστή. Μπορείτε να επεξεργαστείτε το αρχείο σε οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου ASCII - το Notepad λειτουργεί πολύ καλά - ή σε έναν επεξεργαστή XML. Αποδεικνύεται ότι έχετε ένα μεγάλο στο Visual Studio και αυτό είναι αυτό που φαίνεται στην παρακάτω εικόνα. Αλλά δεν μπορείτε να επεξεργαστείτε το αρχείο vbproj την ίδια στιγμή που επεξεργάζεστε το έργο στο οποίο βρίσκεται. Έτσι, κλείστε το έργο και ανοίξτε μόνο το αρχείο vbproj. Θα πρέπει να δείτε το αρχείο που εμφανίζεται στο παράθυρο επεξεργασίας όπως φαίνεται στην παρακάτω εικόνα.

(Σημειώστε το Συντάσσω στοιχεία για κάθε κατηγορία. Εξαρτάται από τα επιμέρους στοιχεία πρέπει να προστίθενται ακριβώς όπως φαίνεται στην παρακάτω εικόνα. Αυτή η εικόνα δημιουργήθηκε στο VB 2005 αλλά έχει δοκιμαστεί και στο VB 2008.)


Κάντε κλικ εδώ για να εμφανίσετε την εικόνα
Κάντε κλικ στο κουμπί Επιστροφή στο πρόγραμμα περιήγησής σας για να επιστρέψετε

Για πολλούς από εμάς, είναι πιθανόν αρκετό να γνωρίζουμε ότι υπάρχουν μερικές κατηγορίες, ακριβώς έτσι ξέρουμε τι είναι όταν προσπαθούμε να εντοπίσουμε ένα σφάλμα στο μέλλον. Για την ανάπτυξη μεγάλων και σύνθετων συστημάτων, θα μπορούσαν να είναι ένα μικρό θαύμα, επειδή μπορούν να βοηθήσουν στην οργάνωση κώδικα με τρόπους που θα ήταν αδύνατο πριν. (Μπορείτε επίσης να έχετε μερικές δομές και μερικές διασυνδέσεις!) Αλλά κάποιοι έχουν καταλήξει στο συμπέρασμα ότι η Microsoft τους εφευρέθηκε μόνο για εσωτερικούς λόγους - για να κάνουν την παραγωγή κώδικα καλύτερη. Ο συγγραφέας Paul Kimmel έφτασε ακόμη στο σημείο να προτείνει ότι η Microsoft δημιούργησε μερικές τάξεις για να μειώσει το κόστος της, καθιστώντας ευκολότερη την εξωτερική ανάθεση αναπτυξιακών εργασιών σε όλο τον κόσμο.

Μπορεί. Είναι το είδος που μπορεί να κάνουν.

instagram story viewer