Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Περίεργη δήλωση μεταβλητής, συνάρτησης σε VB κώδικα

Îåêßíçóå áðü ôï ìÝëïò tasos. Τελευταία δημοσίευση από το μέλος tasos στις 26-06-2007, 10:31. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  25-06-2007, 15:03 33151

    Περίεργη δήλωση μεταβλητής, συνάρτησης σε VB κώδικα

    Βρήκα κάπου στο web ένα κομμάτι κώδκα σε VB.NET και είχε την εξής δήλωση μιας συνάρτησης :
    Public Sub [Stop]()   
        Dim [as] As Integer

        as = 1
        'Do Stuff
    End Sub


    Αυτό που καταλαβαίνω είναι ότι επειδή η λέξη Stop είναι δεσμευμένη λέξη της VB, χρησιμοποιούμε τους χαρακτήρες [ και ] για να δεχτεί το όνομα με τη δεσμευμένη λέξη. Το ίδιο γίνεται και με τις μεταβλητές (αν και χτυπάει όταν κάνουμε χρήση της μεταβλητής Stick out tongue).

    Αυτό που θέλω να ρωτήσω είναι αν αυτός ο τρόπος δήλωσης σημαίνει κάτι άλλο, αν έχει κάποια άλλη χρησιμότητα;

    Τάσος Καραγιάννης

    Baby debugging steps...
  •  25-06-2007, 18:35 33163 σε απάντηση της 33151

    Απ: Περίεργη δήλωση μεταβλητής, συνάρτησης σε VB κώδικα

    Δεν υπάρχει άλλη χρησιμότητα. Αυτός ακριβώς που είπες.

    Απλά και στη χρήση της μεταβλητής πρέπει να βάλουμε τις αγκύλες. Αν λοιπόν γράψεις [as]=1 θα είσαι εντάξει.

    Το σκεπτικό είναι απλό. Ένα κομμάτι κώδικα πλέον μπορεί να είναι αρκετά ετερογενές. Παλιά γράφαμε π.χ. vb6 και ο κώδικας είχε να κάνει μόνο με αυτήν. Οπότε είχαμε 10 reserved words, δεν τα χρησιμοποιούσαμε και είμασταν εντάξει. Πλέον όμως ένα κομμάτι κώδικα μπορεί να καλεί ή να καλείται από άλλες γλώσσες που έχουν άλλες δεσμευμένες λέξεις. Επίσης μπορεί να καλεί sql ή αντικείμενα βάσεων δεδομένων μέσω linq ή να καλεί ένα webservice μέσω κάποιας proxy class. Αν μείνουμε στην λογική ότι δεν χρησιμοποιούμε reserved words, τότε η λίστα γίνεται σιγά σιγά πολύ μεγάλη! Άλλες δεσμευμένες λέξεις έχει η vb, άλλες η c#, άλλες η sql και άλλες παραδοχές γίνονται για τα web services!

    Προσωπικά έχω ξεπεράσει αυτό το taboo και χρησιμοποιώ κανονικά reserved words μέσα σε αγκύλες. 


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  25-06-2007, 19:32 33165 σε απάντηση της 33163

    Απ: Περίεργη δήλωση μεταβλητής, συνάρτησης σε VB κώδικα

    Χμ χμ, δεν είναι λίγο πεπονόφλουδα αυτό; Καταλαβαίνω τη λογική σου, σε λίγο τα πάντα θα είναι δεσμευμένες λέξεις, αλλά με λίγη προσπάθεια μπορείς να παρακάμψεις τουλάχιστον αυτές της γλώσσας όπου γράφεις. Το overloading δεσμευμένων λέξεων κάνει τον κώδικα πιο δυσανάγνωστο και κατ' επέκταση δυσκολότερα συντηρήσιμο.
    Νατάσα Μανουσοπούλου
  •  25-06-2007, 19:52 33166 σε απάντηση της 33165

    Απ: Περίεργη δήλωση μεταβλητής, συνάρτησης σε VB κώδικα

    Ε, καλά... δεν είπαμε να γράφεις κάτι τέτοιο: Dim [Dim] As [Private]

    Απλά αν θέλεις να κάνεις μια κλάση που να έχει Start και Stop μεθόδους, να την κάνεις. Να μην αποφύγεις τη λέξη Stop επειδή είναι reserved!


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  25-06-2007, 22:45 33168 σε απάντηση της 33166

    Απ: Περίεργη δήλωση μεταβλητής, συνάρτησης σε VB κώδικα

    Μπορείς να χρησιμοποιήσεις συνώνυμα, ή παραλλαγμένα, ή περιγραφικότερα ονόματα.

    Πχ, αποφεύγω να χρησιμοποιώ το όνομα value για μια μεταβλητή, ακόμη κι αν δεν μιλάμε για το context ενός property setter (C#). Θα χρησιμοποιήσω τη λέξη val αν είναι κάτι μικρό και τοπικό, ή κάτι πιο εξειδικευμένο που να περιγράφει καλύτερα την περίπτωση εκείνη.

    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  26-06-2007, 10:31 33173 σε απάντηση της 33163

    Απ: Περίεργη δήλωση μεταβλητής, συνάρτησης σε VB κώδικα

    Dimitris Papadimitriou:

    Πλέον όμως ένα κομμάτι κώδικα μπορεί να καλεί ή να καλείται από άλλες γλώσσες που έχουν άλλες δεσμευμένες λέξεις. Επίσης μπορεί να καλεί sql ή αντικείμενα βάσεων δεδομένων μέσω linq ή να καλεί ένα webservice μέσω κάποιας proxy class. Αν μείνουμε στην λογική ότι δεν χρησιμοποιούμε reserved words, τότε η λίστα γίνεται σιγά σιγά πολύ μεγάλη! Άλλες δεσμευμένες λέξεις έχει η vb, άλλες η c#, άλλες η sql και άλλες παραδοχές γίνονται για τα web services!



    Νομίζω πως αυτός είναι και ο κύριος λόγος. Για να πω την αλήθεια είδα αυτή τη δήλωση όταν δοκίμαζα κάπους converters C#2VB, και ο κώδικας της C# είχα μία συνάρτηση Stop() και για να διατηρηθεί το ίδιο όνομα της μεθόδου στη κλάση υπάρχει αυτό το "κολπάκι".

    Ευχαριστώ όλους σας για τις απαντήσεις! Smile

    Τάσος Καραγιάννης

    Baby debugging steps...
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems