2010-08-04 10 views
7

Quali sono, esattamente i mix?
Esistono tecniche per raggiungere questo in C#?Mixins e .net

+3

Wikipedia link se siete all'oscuro come me: http: // en.wikipedia.org/wiki/Mixin – Rup

risposta

4

Non sono esperto, ma questo è quello che ho trovato.

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

Da MSDN Blog:

Mixins In C#

Alcuni suggeriscono che i metodi di estensione in l'imminente C# 3.0 sono una sorta di mixin, perché si può mettere in funzionalità in questi metodi e arbitrariamente tag che su qualsiasi classe che si mancanza. Nella specifica C# 2.0 è chiaramente chiamato che la classe base di una classe generica deve essere un tipo di classe così da escludere l'utilizzo dell'approccio sopra descritto in C#. Non sono troppo sicuro sul motivo per cui scegliamo di disabilitare esplicitamente la sottoclasse. Poiché C# non supporta l'eredità multipla , IMO dovrebbe aver supportato la codifica in stile Mixin.

6

Un mixin è un insieme di membri della classe che possono essere "mescolati" in una classe senza problemi di multi-eredità.

C# non ha mixin per sé, ma offre metodi di estensione per obiettivi simili.

+0

Anche se non è abbastanza un mixin. Avresti un esempio facile da vedere in qualsiasi pseudo o linguaggio reale? –

+2

@NoProblemBabe: ad esempio, Ruby fornisce il mixin 'Enumerable' che può essere mescolato in classi che sono enumerabili per estendere la classe con metodi per il filtraggio, la mappatura e l'ordinamento. C# /. NET ha la classe statica 'Enumerable' che fornisce i metodi di estensione per filtrare, mappare e classificare classi che sono enumerabili (" LINQ "). – dtb

+0

interfaccia pubblica IEmailItem { string SendToName {get; impostato; } string SendToAddress {get; impostato; } } quindi un metodo di estensione SendMail (questo IEmailItem m) {qualche codice reale qui} ogni classe che implementa l'interfaccia IEmailItem "erediterà" il metodo di invio della posta – eloycm

5

Si prega di controllare re-mix on codeplex.com. Si tratta di una libreria open source per portare mixins a .NET

Ci si avrà una guida passo passo su come implementare mixins con .NET