7
votes

Mélangements et .NET.

Quels sont, exactement mélangés?
Y a-t-il des techniques pour atteindre cela en C #?


1 commentaires

Wikipedia Link Si vous êtes désemparé comme moi: en.wikipedia.org/wiki/mixin


3 Réponses :


4
votes

Je ne suis pas expert, mais c'est ce que j'ai trouvé.

  1. Mélangements en C # 3.0
  2. Mélanges de mise en œuvre de méthodes d'extension C #

    de msdn blog:

    Mélangements en C #

    Certains suggèrent que les méthodes d'extension dans Le prochain C # 3.0 est une sorte de Mélanges, parce que vous pouvez mettre dans Fonctionnalités dans ces méthodes et étiquetez-le arbitrairement sur n'importe quelle classe que vous vouloir. Dans la spécification C # 2.0 Section 20.1.3 Il est clairement appelé sur la classe de base d'un générique la classe doit être une classe construite Tapez donc cette règle en utilisant ce qui précède approche à utiliser dans C #. je ne suis pas trop sûr de savoir pourquoi nous choisissons de interdire explicitement la sous-classe abstraite. Puisque c # ne supporte pas héritage multiple, imo il devrait ont pris en charge le codage de style mixin.


0 commentaires

6
votes

Un mixin est un ensemble de membres de la classe pouvant être "mélangés" dans une classe sans problèmes de multi-héritage.

C # n'a pas de mélanges en soi, mais offre des méthodes d'extension pour des objectifs similaires.


3 commentaires

Bien que ce n'est pas tout à fait un mixin. Aurait un exemple facile à voir dans une pseudo ou une langue réelle?


@Noproblembabe: Par exemple, Ruby fournit le mixin énumérable qui peut être mélangé dans des classes qui sont énormes pour étendre la classe avec des procédés de filtrage, de cartographie et de tri. C # /. Net a la classe statique énumérable qui fournit des méthodes d'extension pour filtrage, mappage et trier les classes énumérables ("linq").


Interface publique IEMailitem {String Sendtoname {Obtenir; ensemble; } chaîne sendtoaddress {obtenir; ensemble; }} Ensuite une méthode d'extension sendmail (ce code IEMailitem m) {Quelque code réel ici} Chaque interface d'implémentation de la classe IEMailItem "hériter" de "hériter" de la méthode d'envoi de courrier



4
votes

Veuillez vérifier ré-mélanger sur CodePlex.com . C'est une bibliothèque open source pour apporter des mélanges à .NET

Là, vous aurez un guide étape par étape sur la manière de mettre en œuvre des mélanges avec .NET


0 commentaires