Per quanto ne so, "mixin" è un concetto di Ruby per la gestione di limitazioni di ereditarietà multiple e non ha un modo integrato di farlo in C #, VB.NET o Java.
Il tuo suggerimento di aggiungere metodi di estensione a un'interfaccia è interessante e fornirebbe molti dei benefici di un mixin. Non ho mai visto nessuno farlo in quel modo prima, quindi dovrò metterlo nella mia valigetta ...
Per quanto riguarda l'esempio, penso che quello che hai inserito nel tuo commento sopra non sia cattivo; dimostrando che un pipistrello è un mammifero che può volare. Senza fare il tuo esempio inventato in questo modo, non riesco a pensare a nessun posto dove questo "si verifica" in una delle librerie .NET di base, oltre a Linq (una specie, sebbene anche IEnumerable richieda che tu definisca il metodo GetEnumerator
nella classe di implementazione, quindi non è un'interfaccia puramente "vuota" con solo i metodi di estensione.)
C'è un problema nel presentare il tuo esempio inventato?