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

 

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

έλλειψη with....end with στην C#

Îåêßíçóå áðü ôï ìÝëïò manosB. Τελευταία δημοσίευση από το μέλος Dimitris Papadimitriou στις 26-06-2008, 12:14. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  25-06-2008, 10:36 43051

    έλλειψη with....end with στην C#

    Χαιρετώ την ομήγυρη

    Λοιπόν το ανακάλυψα όταν χρειάστηκε να μεταφέρω ένα παλιό κώδικα μου σε VB.net σε C# και με έκπληξη διαπίστωσα ότι η γλώσσα δεν υποστηρίζει with end with. Μου έκανε εντύπωση και ψάχνωστας στο google είδα και άλλους τέτοιους προβληματισμούς. Δεν συζητώ η C# είναι για τον προγραμματιστή πιο ποιοτική γλώσσα (το λέει ένας vb.netοβιος) αλλά κάποια πράγματα που είναι καλά στη μία γλώσσα γιατί να μην μεταφέρονται και στην άλληWink
    Θα ήθελα τις απόψεις σας πάνω σε αυτό το θέμα και αν σας έχει απασχολήσει ποτέ κάτι τέτοιο. Κάνενα work around?

    Manos
  •  26-06-2008, 09:11 43089 σε απάντηση της 43051

    Απ: έλλειψη with....end with στην C#

    Χμ δεν ξέρω, μήπως τελικά στην C# είναι λάθος 'φιλοσοφίας΄ να υποστηρίζεται η With. Κάποια πράγματα που διάβασα παραπάνω στο νετ με μπέρδεψαν περισσότερο. Tongue Tied

    Manos
  •  26-06-2008, 11:33 43100 σε απάντηση της 43089

    Απ: έλλειψη with....end with στην C#

    Το With ... End είναι απλό syntactic sugar. Σε γλυτώνει απλά από τη "φασαρία" να γράφεις το όνομα του αντικειμένου στο οποίο αναφέρεσαι. Αν θέλεις να αλλάξεις τις τιμές σε 4-5 properties του αντικειμένου, μπορεί να σου γλυτώσει μερικά keystrokes. Τέτοιες περιπτώσεις είναι σπάνιες όμως. Η πιο συνηθισμένη περίπτωση είναι όταν δημιουργείς ένα αντικείμενο και θέλεις να βάλεις τα property του. Σε αυτή την περίπτωση όμως, είναι ευκολότερο να φτιάξεις ένα constructor παρά να χρησιμοποιήσεις With ... End. Επιπλέον, στην C# 3.0 με τους object initializers μπορείς να γράψεις π.χ. MyClass anItem=new MyClass {MyProperty1=1, MyProperty2=2} και να κάνεις initialize τα properties σου χωρίς καν να φτιάξεις ένα ξεχωριστό constructor.

    Νομίζω ότι η With ... End υπάρχει περισσότερο για backwards compatibility παρά για κάποιο ουσιαστικό λόγο.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  26-06-2008, 12:14 43101 σε απάντηση της 43100

    Απ: έλλειψη with....end with στην C#

    Προσωπικά σταμάτησα να γκρινιάζω για την έλλειψη With ... End στην C# ακριβώς μετά την εμφάνιση των object initializers. Γιατί ακριβώς όπως λες Παναγιώτη συνηθέστερη περίπτωση χρήσης της With ήταν στο object initialization.

    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems