Στη του blog post σχετικά με γραφομηχανή, Mark Rendle λέει, ότι ένα από τα πράγματα που του αρέσει γι 'αυτό είναι:
«Διαρθρωτικές πληκτρολόγηση για διασυνδέσεις. Εύχομαι πραγματικά C # θα μπορούσε να το κάνει αυτό»
Τι εννοούσε με αυτό;
Στη του blog post σχετικά με γραφομηχανή, Mark Rendle λέει, ότι ένα από τα πράγματα που του αρέσει γι 'αυτό είναι:
«Διαρθρωτικές πληκτρολόγηση για διασυνδέσεις. Εύχομαι πραγματικά C # θα μπορούσε να το κάνει αυτό»
Τι εννοούσε με αυτό;
Ουσιαστικά, αυτό σημαίνει ότι οι διασυνδέσεις σε σύγκριση με βάση την «πάπια πληκτρολογώντας» και όχι με βάση την ταυτότητα τύπου.
Ας εξετάσουμε το ακόλουθο κώδικα C #:
interface X1 { string Name { get; } }
interface X2 { string Name { get; } }
// ... later
X1 a = null;
X2 b = a; // Compile error! X1 and X2 are not compatible
Και το αντίστοιχο κωδικό γραφομηχανή:
interface X1 { name: string; }
interface X2 { name: string; }
var a: X1 = null;
var b: X2 = a; // OK: X1 and X2 have the same members, so they are compatible
Το spec δεν καλύπτει αυτό πολλές λεπτομέρειες, αλλά τάξεις έχουν «μάρκες» που σημαίνει το ίδιο κώδικα, γραμμένο με μαθήματα αντί για διασυνδέσεις, θα έχει ένα σφάλμα. C # διασυνδέσεις έχουν τα εμπορικά σήματα, και ως εκ τούτου δεν μπορεί να μετατραπεί σιωπηρά.
Ο πιο απλός τρόπος για να σκεφτώ είναι ότι αν προσπαθείτε μια μετατροπή από το περιβάλλον Χ για τη διασύνδεση Υ, αν Χ έχει όλα τα μέλη του Υ, η μετατροπή πετύχει, έστω και αν τα Χ και Υ μπορεί να μην έχουν τα ίδια ονόματα.
Σκέφτομαι για.
class Employee { fire: = ..., otherMethod: = ...}
class Missile { fire: = ..., yetMoreMethod: = ...}
interface ICanFire { fire: = ...}
val e = new Employee
val m = new Missile
ICanFire bigGuy = if(util.Random.nextBoolean) e else m
bigGuy.fire
Τι θα συμβεί αν είπαμε:
interface IButtonEvent { fire: = ...}
interface IMouseButtonEvent { fire: = ...}
...
Γραφομηχανή θα επιτρέψει αυτή, C # δεν θα.
Όπως γραφομηχανή έχει ως στόχο να λειτουργήσει καλά με το DOM που χρησιμοποιεί το «χαλαρά» πληκτρολόγηση, είναι η μόνη λογική επιλέξετε για την γραφομηχανή.
Το αφήνω μέχρι τον αναγνώστη να αποφασίσει αν τους αρέσει «Διαρθρωτικές πληκτρολογώντας» ... ..