.net - Multiple inhertinace -


i have classes having .net control:

class mytextbox : inherits mycontrol     control textbox 

i use inheritance instead of having variable containing .net control:

class mytextbox : inherits textbox 

since multiple inheritance not supported in .net, there way me inherit mycontrol class , having implementation of .net textbox?

class mycontrol : inherits control  class mytextbox : inherits mycontrol     (all methods, property, events of textbox class) 

so can have attributes/operations of textboxes, comboboxes , whatever in subclasses plus personal 1 , generic atts/ops on mycontrol class inherited subones.

as said, .net (and modern languages , oop environments) won't support multi-inheritance - , design decision -.

not workaround actual solution wrapping.

if want control mycontrol , textbox there're other ways of getting such relationship: interfaces.

your specialized textbox should inherit .net built-in textbox control class , implement imycontrol interface.

the functionality specializedtextbox must implement can implemented in separate class , use members in implementation of imycontrol on specializedtextbox.

i'm going write down sample in c#, should enough you're vb.net developer , solution language-neutral:

public interface imycontrol  {      void do(); }  public class specializedtextbox : textbox, imycontrol {      private readonly mycontrolextension _extension = new mycontrolextension(this);       public mycontrolextension extension       {           { return _extension; }      }       public void do()      {           extension.do();      } }  public class mycontrolextension {     public mycontrolextension(control wrappedcontrol)     {          _wrappedcontrol = wrappedcontrol;     }      private readonly control _wrappedcontrol;      public control wrappedcontrol { { return _wrapedcontrol; } }      public void do()      {          // stuff wrappedcontrol property contained control      }  } 

now specializedtextbox control have both imycontrol , textbox members.

as far know, enough simulate multi-inheritance, class can implement 1 or more interfaces.


Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -