• 0

[VB.NET] Multiple Inheritance


Question

Hey gang,

I fully understand that VB.NET does not support multiple inheritance. So that said we are trying to figure a way to get a form of MI anyway. Attached is a simple diagram. In this you will see that sometimes we need the MS Collection Base class (first box) and we have our Base class (BLBase)

We have our own class (BLCollection) that needs to inherit from the MS CollectionBase. What we want is to have some objects that have our BLCollection and some objects that do not... (bottom two classes) however both classes at the bottom need to inherit from our BLBase class. The diagram shows that BLBase is inheriting from CollectionBase, and this will work for us in that we simply will not use the CollectionBase functions in "Object w/o Collection"

There must be a better way... I read a little about using multiple interfaces but I'm not getting how to impliment this.

EDIT:

Ramesees. Thanks, yes I know that the first diagram will work... but what I want is the 2nd diagram (newly added) so that the "Object w/o Collection" would not carry around the CollectionBase inhertance. Not a BIG deal... but it would be nice. (thanks again)

Thanks for any help.

post-45653-1178290842.gif

post-45653-1178292192.gif

Edited by jameswjrose
Link to comment
https://www.neowin.net/forum/topic/558305-vbnet-multiple-inheritance/
Share on other sites

3 answers to this question

Recommended Posts

  • 0

If I read that diagram correctly, if you set up your classes as they are described they will work the way you want

Here is some C# code (although the translation to VB.NET should not be difficult):

public class BLBase : CollectionBase
{

}

public class BLCollection : BLBase
{
		  //  By inheritance this will automatically inherit from CollectionBase
}

//  Now for the bottom classes

public class ObjWithoutCollection : BLBase
{

}

public class ObjWithCollection : BLCollection
{
	 //  This class will have all your specific collection code
	//   as well as the methods from BLBase and CollectionBase
}

I hope this helps :)

  • 0
  jameswjrose said:
Hey gang,

I fully understand that VB.NET does not support multiple inheritance. So that said we are trying to figure a way to get a form of MI anyway. Attached is a simple diagram. In this you will see that sometimes we need the MS Collection Base class (first box) and we have our Base class (BLBase)

We have our own class (BLCollection) that needs to inherit from the MS CollectionBase. What we want is to have some objects that have our BLCollection and some objects that do not... (bottom two classes) however both classes at the bottom need to inherit from our BLBase class. The diagram shows that BLBase is inheriting from CollectionBase, and this will work for us in that we simply will not use the CollectionBase functions in "Object w/o Collection"

There must be a better way... I read a little about using multiple interfaces but I'm not getting how to impliment this.

EDIT:

Ramesees. Thanks, yes I know that the first diagram will work... but what I want is the 2nd diagram (newly added) so that the "Object w/o Collection" would not carry around the CollectionBase inhertance. Not a BIG deal... but it would be nice. (thanks again)

Thanks for any help.

To utilize the interface method, you'd have to refactor BLCollection and have it implement IList, ICollection, and IEnumerable instead of inheriting CollectionBase, and have it inherit BLBase.

  • 0

Thank you very much. I'll give it a go first thing monday morn (hey, even geeks gota have a weekend, besides my wife just got out of the hospital, and hey, why dont you just cut me some slack.... I'll do it monday like I promised.... sheeeesh. Pushy guy)

<serious>

The model looks great, and I think I get it. Thank you very kindly. Great help.

</serious>

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.