DTsuras Δημοσ. 28 Μαΐου 2016 Δημοσ. 28 Μαΐου 2016 Πραγματικα δεν ηξερα που αλλου να το κανω ποστ.. xDD Που μπορω να βρω κουπα σαν αυτην; δεν χρειαζεται να ειναι ακριβως η ιδια.
corsair04 Δημοσ. 28 Μαΐου 2016 Δημοσ. 28 Μαΐου 2016 Πραγματικα δεν ηξερα που αλλου να το κανω ποστ.. xDD Που μπορω να βρω κουπα σαν αυτην; δεν χρειαζεται να ειναι ακριβως η ιδια. 10305_10154327809861840_1774366520748063550_n.jpg εδώ αλλά θα μπορούσες να την φτιάξεις και μόνο σου ρίξε μια ματιά εδώ έχει πολλά μαγαζιά τέτοια και στο ebay έχει πολλές τώρα για Ελλάδα ψάξε σε κάνα skroutz
Επισκέπτης Δημοσ. 28 Μαΐου 2016 Δημοσ. 28 Μαΐου 2016 Ο ίδιος κώδικας, αλλά σε JavaScript: http://www.cafepress.co.uk/mf/83443486/programmers-coffee_mugs?productId=201941824
Papakaliati Δημοσ. 28 Μαΐου 2016 Δημοσ. 28 Μαΐου 2016 Ο ίδιος κώδικας, αλλά σε JavaScript: http://www.cafepress.co.uk/mf/83443486/programmers-coffee_mugs?productId=201941824 Γιατι να μην ειναι C#;
defacer Δημοσ. 28 Μαΐου 2016 Δημοσ. 28 Μαΐου 2016 Που μπορω να βρω κουπα σαν αυτην; δεν χρειαζεται να ειναι ακριβως η ιδια. Είσαι λίγο άτυχος, είχα δυο παραπανίσιες τέτοιες αλλά τις έδωσα...
Επισκέπτης Δημοσ. 28 Μαΐου 2016 Δημοσ. 28 Μαΐου 2016 Γιατι να μην ειναι C#; Γιατί πρέπει να είσαι πόντιος για να χρησιμοποιήσεις var στο class instantiation.
defacer Δημοσ. 28 Μαΐου 2016 Δημοσ. 28 Μαΐου 2016 Γιατί πρέπει να είσαι πόντιος για να χρησιμοποιήσεις var στο class instantiation. Γιατί; Ίσα ίσα που όταν βγήκε το var γελούσα με τη Java κάθε φορά που δεν έγραφα Dictionary<string, Func<string, Foo>> dict = new Dictionary<string, Func<string, Foo>>(); repeat much? Δε μπορώ να φανταστώ off the top ούτε μία περίπτωση που να μη γράψει κανείς var. 1
Papakaliati Δημοσ. 28 Μαΐου 2016 Δημοσ. 28 Μαΐου 2016 Γιατί πρέπει να είσαι πόντιος για να χρησιμοποιήσεις var στο class instantiation. Υπαρχει καμια δικαιολογια πισω απο αυτην την δηλωση; Η να ειχαμε να λεγαμε;
Επισκέπτης Δημοσ. 29 Μαΐου 2016 Δημοσ. 29 Μαΐου 2016 Το var χρησιμοποιεί reflection στο runtime για να αποφασίσει τον τύπο της μεταβλητής. Το να το χρησιμοποιείς στη δήλωση μιας κλάσης που ήδη γνωρίζεις τον τύπο της είναι περιττό. Εκτός κι αν βαριέσαι να πληκτρολογείς. Το δε παράδειγμα που δίνει ο defacer, μέρος της πολιτικής DRY (Don't repeat yourself), επίσης το βρίσκω περιττό καθότι με το που θα γράψεις new το Intellisense θα σου πετάξει όλο τον ορισμό του generic. Αλλά εντάξει, να το δεχτώ γιατί βελτιώνει το readability και δεν χάνεις πολύτιμες πληροφορίες καθώς βλέπεις τον ορισμό του generic μετά το new. Αν όμως χρησιμοποιείς var και καλείς μια custom function και διαβάσει κάποιος άλλος τον κώδικα δεν έχει ιδέα τι επιστρέφει η function. Το χειρότερο από όλα είναι να βλέπεις κώδικα τρίτου με μεταβλητές μακρυνάρια γιατί για να αντιπαρέλθει ο άλλος τη χρήση του var αναγκάζεται να γράψει στον τίτλο της μεταβλητής τι κάνει και τον τύπο. Μια η άλλη δηλαδή. Προτιμώ να κρατήσω το var για εκεί που προορίζεται. Anonymous functions και LINQ.
defacer Δημοσ. 29 Μαΐου 2016 Δημοσ. 29 Μαΐου 2016 Το var χρησιμοποιεί reflection στο runtime You 've got some reading to do. Αλλά και χωρίς reading, δοκίμασε var s = "foo"; var d = s.lalala; και σκέψου αν γίνεται να σου λέει ο compiler ότι το string δεν έχει property lalala και ταυτόχρονα να ισχύει αυτό που είπες. Μήπως μπερδεύεσαι με το dynamic? 1
Papakaliati Δημοσ. 29 Μαΐου 2016 Δημοσ. 29 Μαΐου 2016 Το χειρότερο από όλα είναι να βλέπεις κώδικα τρίτου με μεταβλητές μακρυνάρια γιατί για να αντιπαρέλθει ο άλλος τη χρήση του var αναγκάζεται να γράψει στον τίτλο της μεταβλητής τι κάνει και τον τύπο. Μια η άλλη δηλαδή. Δεν χρειαζεται και δεν πρεπει να γραφεις στο ονομα της μεταβλητης τον τυπο της περιγραφικα. Δεν υπαρχει ποτε λογος για νομεκλατουρα τυπου rate_double η ξερω και εγω τι αλλο. Εκτος αμα ειναι κατι του στυλ ImageStream, που ετσι και αλλιως ετσι θα το ονομαζες ανεξαρτητα αμα χρησιμοποιεις η οχι var. Γενικα το αν θα χρησιμοποιησεις η οχι var και που, καταληγει να ειναι προσωπικη σου επιλογη (εκτως αμα υπαρχουνε guidelines, που ποτε δεν εχει πεσει στην αντιληψη μου να συμβαινει κατι τετοιο) και δεν επιρρεαζει ουτε την αποδοση, ουτε την ποιοτητα του κωδικα. Και μενα ας πουμε δεν μαρεσει να βλεπω να παραλειπεται το private, με το ζορι κρατιεμαι να μην το προσθεσω παντου στον κωδικα αλλων, αλλα αυτο δεν σημαινει οτι εχω δικαιο.
Επισκέπτης Δημοσ. 29 Μαΐου 2016 Δημοσ. 29 Μαΐου 2016 You 've got some reading to do. Αλλά και χωρίς reading, δοκίμασε var s = "foo"; var d = s.lalala; και σκέψου αν γίνεται να σου λέει ο compiler ότι το string δεν έχει property lalala και ταυτόχρονα να ισχύει αυτό που είπες. Μήπως μπερδεύεσαι με το dynamic? ΟΚ, έκανα λάθος στο συγκεκριμένο.
παπι Δημοσ. 29 Μαΐου 2016 Δημοσ. 29 Μαΐου 2016 Είσαι λίγο άτυχος, είχα δυο παραπανίσιες τέτοιες αλλά τις έδωσα... Αυτη με την stackoverflow πρεπει να την παρω. Σε ολα τα google queries κοτσαρω και ενα stackoverflow 1
zey Δημοσ. 29 Μαΐου 2016 Δημοσ. 29 Μαΐου 2016 Αυτη με την stackoverflow πρεπει να την παρω. Σε ολα τα google queries κοτσαρω και ενα stackoverflow να παρεις keyboard με macro keys που οταν το πατας να γραφει αυτοματα την λεξη stackoverflow (δεν ξερω αν γινεται βεβαια )
moukoublen Δημοσ. 29 Μαΐου 2016 Δημοσ. 29 Μαΐου 2016 Γιατί; Ίσα ίσα που όταν βγήκε το var γελούσα με τη Java κάθε φορά που δεν έγραφα Dictionary<string, Func<string, Foo>> dict = new Dictionary<string, Func<string, Foo>>(); repeat much? Δε μπορώ να φανταστώ off the top ούτε μία περίπτωση που να μη γράψει κανείς var. [off topic] Ναι ισχύει. Αλλά τη java να μην την ξανα-βρίσεις. Την Java! Btw Πλέον έχουν ενταχθεί και στη java τέτοια κόλπα (όχι το var αλλά άλλα. Π.χ. το diamond). Και για να μην αδικούμε τη java, είναι πολύ πιο εύκολο να βάζεις νέα features με το τσουβάλι όταν έχεις fragmentation (δεν ξέρω αν είναι ο σωστός όρος αυτός) στα runtime σου παρά όταν παρέχεις συνεχώς backward compatibility. Δηλαδή "εκτελέσιμο" CLR 2 θέλει CLR 2 για να τρέχει. Με CLR 4 δε μπορείς να το τρέξεις αν θυμάμαι καλά. Ενώ αντίθετα στη java μπορείς με το τελευταίο jre να τρέξεις όποιο "εκτελέσιμο" και αντίστοιχα με το τελευταίο jdk να παράξεις byte code για όποιο jre προς τα πίσω.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα