2010-08-04 11 views
7

¿Qué son exactamente mixinas?
¿Hay alguna técnica para lograr eso en C#?Mixins y .net

+3

enlace de Wikipedia si estás despistado como yo: http: // en.wikipedia.org/wiki/Mixin – Rup

Respuesta

4

No soy un experto, pero esto es lo que encontré.

  1. Mixins in C# 3.0
  2. Implementing Mixins with C# Extension Methods

De MSDN Blog:

Mixins In C#

Algunos sugieren que los métodos de extensión en la próxima C# 3.0 son una especie de Mixins, porque se puede poner en funcionalidades en estos métodos y arbitrariamente etiquetarla en cualquier clase que falta. En la especificación C# 2.0 sección 20.1.3, se llama claramente que la clase base de una clase genérica debe ser de clase construida , por lo que esto excluye el método que se utiliza en C#. No estoy demasiado seguro sobre por qué elegimos explícitamente no permitir la subclase abstracta. Dado que C# no es compatible con herencia múltiple, IMO debería ha sido compatible con la codificación de estilo Mixin.

6

Un mixin es un conjunto de miembros de clase que se pueden "mezclar" en una clase sin problemas de herencia múltiple.

C# no tiene mixins per-se, pero ofrece métodos de extensión para objetivos similares.

+0

Aunque no es todo un mixin. ¿Tendría un ejemplo fácil de ver en cualquier lenguaje pseudo o real? –

+2

@NoProblemBabe: por ejemplo, Ruby proporciona la mezcla 'Enumerable' que se puede combinar en clases enumerables para extender la clase con métodos de filtrado, mapeo y clasificación. C# /. NET tiene la clase estática 'Enumerable' que proporciona métodos de extensión para las clases de filtrado, mapeo y clasificación enumerables (" LINQ "). – dtb

+0

interfaz pública IEmailItem { cadena SendToName {get; conjunto; } cadena SendToAddress {get; conjunto; } } luego un método de extensión SendMail (este IEmailItem m) {algún código real aquí} cada clase que implementa la interfaz IEmailItem "heredará" el método de envío de correo – eloycm

5

Por favor, echa un vistazo a re-mix on codeplex.com. Se trata de una biblioteca de código abierto para llevar a mixins .NET

Allí tendrá una guía paso a paso sobre cómo implementar mixins con .NET

Cuestiones relacionadas