Justin Etheredge is a Senior Consultant for Dominion Digital in Richmond, Virginia - United States. He likes to blog quite a bit at http://www.codethinked.com with hopes that someone out there might read it. When he isn't writing software or working on his computer... wait, he is always doing that. Anyways, Justin likes programming, a lot. Justin has posted 24 posts at DZone. View Full User Profile

Introduction to Mixins For the C# Developer

05.01.2009
| 6682 views |
  • submit to reddit

If you are a C# developer then you may keep hearing about all the cool kids from Smalltalk, Ruby, Python, Scala using these crazy things called mixins. You may even be a little jealous, not because you want the feature, but because they have a feature with an awesome name like "mixin". The name is pretty sweet. And in fact, it is fairly self-explanatory since mixins are all about "mixing-in behaviors".

It is actually an Aspect Oriented Programming (AOP) term which is defined by wikipedia as:

A mixin is a class that provides a certain functionality to be inherited by a subclass, but is not meant to stand alone. Inheriting from a mixin is not a form of specialization but is rather a means to collect functionality. A class may inherit most or all of its functionality by inheriting from one or more mixins through multiple inheritance.

No wonder people are confused! That isn't exactly clear. So let's try to clear it up just a tiny bit...

Read the rest of this post at CodeThinked.com

References
Published at DZone with permission of its author, Justin Etheredge. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags:

Comments

Stefan Papp replied on Mon, 2011/04/18 - 5:50am

Some readers might be interested that there is now an open source framework available that brings mixins to .NET. Check out http://remix.codeplex.com to learn more

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.