<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Why doesn't C# support multiple inheritance?</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx</link><description>This answer is from Chris Brumme via the following post . I've copied the text in here in case the post disappears. *** There are a number of reasons we don't implement Multiple Implementation Inheritance directly. (As you know, we support Multiple Interface</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>New C# FAQ Blog</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#85574</link><pubDate>Mon, 08 Mar 2004 00:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:85574</guid><dc:creator>Roy J. Salisbury</dc:creator><description /></item><item><title>C# Frequently Asked Questions</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#85580</link><pubDate>Mon, 08 Mar 2004 00:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:85580</guid><dc:creator>Christian Nagel's OneNotes</dc:creator><description /></item><item><title>re: Why doesn't C# support multiple inheritance?</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#85695</link><pubDate>Mon, 08 Mar 2004 04:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:85695</guid><dc:creator>Phil</dc:creator><description>For me, MI is interesting when:&lt;br&gt;   - you want to inherit the default behavior of an interface &lt;br&gt;   - you want to have an object which can interact with two libraries.&lt;br&gt;&lt;br&gt;If I could specify within an attribute the default implementaiton for an interface, that would be great. </description></item><item><title>C# Frequently Asked Questions</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#85809</link><pubDate>Mon, 08 Mar 2004 13:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:85809</guid><dc:creator>Dennis' blog</dc:creator><description /></item><item><title>re: Why doesn't C# support multiple inheritance?</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#109248</link><pubDate>Wed, 07 Apr 2004 19:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:109248</guid><dc:creator>Shital Shah</dc:creator><description>From theoratical point of view MI is an nessecity. In many situations we need to make a decision whether to define an interface or an abstract class with same signatures. An interface and abstract class are exactly the samething except abstract class would allow some non-abstract members which can act as shared common code plus it can have protected overridable members. If MI is not supported then I have to really think whether to put my signatures in interface or an abstract class and decision would be based on limited knowledge whether client classes could have been already been derived from other class. So in nutshell, if there is no MI, my ability to share common code along with abstract members gets limited.</description></item><item><title>re: Why doesn't C# support multiple inheritance?</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#130869</link><pubDate>Thu, 13 May 2004 01:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:130869</guid><dc:creator>Felix</dc:creator><description>If I run into the problem of sharing common code as Shital described above, I use a mix of multiple interfaces and the Bridge Pattern.  The class that needed to have multiple inheritance implements multiple Interfaces.  Then, that same class will contain the Concrete Abstraction of the Bridge.</description></item><item><title>re: Why doesn't C# support multiple inheritance?</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#131996</link><pubDate>Fri, 14 May 2004 16:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:131996</guid><dc:creator>Kjell Holmgren</dc:creator><description>Personally, I would love mixins, as it would most elegantly address many of my issues with the implementation inheritance system of the CLR. &lt;br&gt;&lt;br&gt;Also, I have the gut feeling that mixins would fit better into the philosophy of the .Net framework; in one swoop it would address the lack of multiple inheritance and the inability of doing template meta-programming ATL-style with the CLR generics.&lt;br&gt;&lt;br&gt;Besides, I would love the AOP aspect [pun] of mixins; I imagine the mixin implementation would function better, smoother, and perform better than messing with Context bound objects and message sinks…&lt;br&gt;&lt;br&gt;Since we are discussing single (implementation) inheritance versus multiple inheritance, what about single dispatch versus multiple dispatch?  :-)&lt;br&gt;</description></item><item><title>Why Multiple Inheritance was not implemented in .NET</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#433679</link><pubDate>Wed, 29 Jun 2005 07:55:39 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:433679</guid><dc:creator>Rakesh Rajan blogs here...</dc:creator><description /></item><item><title>El laberinto de piedra  &amp;raquo; Blog Archive   &amp;raquo; Do bemol y el grano de caf??</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#2639492</link><pubDate>Tue, 15 May 2007 06:18:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2639492</guid><dc:creator>El laberinto de piedra  » Blog Archive   » Do bemol y el grano de caf??</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://arnulfoperez.com/blog/2007/05/13/do-bemol-y-el-grano-de-cafe/"&gt;http://arnulfoperez.com/blog/2007/05/13/do-bemol-y-el-grano-de-cafe/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>El laberinto de piedra  &amp;raquo; Blog Archive   &amp;raquo; Patrones y esquemas</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#2645594</link><pubDate>Tue, 15 May 2007 12:11:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2645594</guid><dc:creator>El laberinto de piedra  » Blog Archive   » Patrones y esquemas</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://arnulfoperez.com/blog/2007/05/13/database-answers/"&gt;http://arnulfoperez.com/blog/2007/05/13/database-answers/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>[Weekly - QASW] - Questions and Answers in Software Development  &amp;laquo; Michael Sync</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#3938346</link><pubDate>Wed, 18 Jul 2007 17:37:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3938346</guid><dc:creator>[Weekly - QASW] - Questions and Answers in Software Development  « Michael Sync</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://michaelsync.net/2007/07/18/weekly-qasw-questions-and-answers-in-software-development/"&gt;http://michaelsync.net/2007/07/18/weekly-qasw-questions-and-answers-in-software-development/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>Michael Sync  &amp;raquo; [Weekly - QASW] - Questions and Answers in Software Development</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#5443543</link><pubDate>Sat, 13 Oct 2007 19:46:12 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5443543</guid><dc:creator>Michael Sync  » [Weekly - QASW] - Questions and Answers in Software Development</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://michaelsync.net/2007/07/18/weekly-qasw-questions-and-answers-in-software-development"&gt;http://michaelsync.net/2007/07/18/weekly-qasw-questions-and-answers-in-software-development&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>The computer programming thread - Bad Astronomy and Universe Today Forum</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#5918321</link><pubDate>Mon, 05 Nov 2007 23:39:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5918321</guid><dc:creator>The computer programming thread - Bad Astronomy and Universe Today Forum</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://www.bautforum.com/off-topic-babbling/66682-computer-programming-thread.html#post1105762"&gt;http://www.bautforum.com/off-topic-babbling/66682-computer-programming-thread.html#post1105762&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>Extension Methods - Extension or Confusion?</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#6980648</link><pubDate>Fri, 04 Jan 2008 19:06:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6980648</guid><dc:creator>Vitaly's WebLog</dc:creator><description>&lt;p&gt;Extension Methods - Extension or Confusion?&lt;/p&gt;
</description></item><item><title>Mehrfachvererbung &amp;laquo; Das Megos .NET-Weblog</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#9132815</link><pubDate>Sat, 22 Nov 2008 18:00:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9132815</guid><dc:creator>Mehrfachvererbung &amp;laquo; Das Megos .NET-Weblog</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://megos.wordpress.com/2008/11/22/mehrfachvererbung-2/"&gt;http://megos.wordpress.com/2008/11/22/mehrfachvererbung-2/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Why doesn't C# support multiple inheritance?</title><link>http://blogs.msdn.com/csharpfaq/archive/2004/03/07/85562.aspx#9904836</link><pubDate>Thu, 08 Oct 2009 13:40:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9904836</guid><dc:creator>Balaji Birajdar</dc:creator><description>&lt;p&gt;In object-oriented programming languages with multiple inheritance and knowledge organization, the diamond problem is an ambiguity that arises when two classes B and C inherit from A, and class D inherits from both B and C. If a method in D calls a method defined in A (and does not override the method), and B and C have overridden that method differently, then from which class does it inherit: B, or C?&lt;/p&gt;
&lt;p&gt;For example, in the context of GUI software development, a class Button may inherit from both classes Rectangle (for appearance) and Clickable (for functionality/input handling), and classes Rectangle and Clickable both inherit from the Object class. Now if the equals method is called for a Button object and there is no such method in the Button class but there is an overridden equals method in both Rectangle and Clickable, which method should be eventually called?&lt;/p&gt;
&lt;p&gt;It is called the &amp;quot;diamond problem&amp;quot; because of the shape of the class inheritance diagram in this situation. In this article, class A is at the top, both B and C separately beneath it, and D joins the two together at the bottom to form a diamond shape.&lt;/p&gt;
</description></item></channel></rss>