473,856 Members | 1,638 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Interfaces, Big Deal!!

Hi,

Please help me to understand this, because I don't see what I'm missing.

I was reading a lot of examples on Internet that explain that C# doesn't
implement multiple inheritance it implement multiple interfaces.

So, I keep reading and reading and reading to see how can I resolve my
problem with interfaces.

The conclusion is I'm writing to all of you because I couldn't find the way
to resolve my problem.

If I can create multiples interfaces and I have to implement the methods on
the derived class, then what's the big deal.

I know if I declare a class that inherit from one interface is useful
because for example

I can create an Interface called Shape, and 3 Classes called Circle,
Rectangle, and Line.

If on my interface I declare my method Draw(); and I implement on each
derived class then I could do the next.

IShape s = (IShape) AnyShapeObject;

s.draw();

I think is very useful and I used many times. But now the question is what
is the similitude between Multiple Inheritance and Multiple Interfaces???? I
don't see too much

Why on Internet always speak for Multiple Inheritance and Multiple
Interfaces like they have a relation???

My Case:

I have many Windows Control and I'm inherit each one for create my own
Controls.

For example I want to add method called getVirtualSize( );

I create and interface

IVirtualSize

It contain

public getVirtualSize( );

So, on my derived class I MUST implement my method getVirtualSize and that's
it.

Very nice!!!

Now the real question is, I create a lot of logic on my paint method; this
logic is exactly the same for all derived classes, why do I have to
implement this entire logic on each Control???

With multiple inheritances you just create a class
ExtendedControl Funcionality and Implement a method OnPaintEx, and really I
have a nice source code, because my class ExtendedControl Funcionality has
all the new extended functionality.

Then how can I do the same with interfaces????

I don't want to put my piece of code on every derived class, it is a mess
and very difficult to maintain, I want to centralize my source code and in
the same time I want to use many methods of the base classes, that means I
want to use all the protected methods that the controls offer to me because
OnPaintEx needs those.

Really, here is only one example, the reality is that is a lot of source
code that I "should" implement on every Control, I don't want to do that.

Thanks, the answers will be really appreciated.

Gustavo.


Jul 21 '05 #1
21 2040
Hello

Unlike C++, C# doesn't support multiple implementaion inheritance. But your
problem can be solved by deriving the class ExtendedControl Funcionality from
Control and deriving your class from ExtendedControl Funcionality.

Best regards,

Sherif
"Franco Gustavo" <gf*****@inunti us.com> wrote in message
news:#h******** ******@tk2msftn gp13.phx.gbl...
Hi,

Please help me to understand this, because I don't see what I'm missing.

I was reading a lot of examples on Internet that explain that C# doesn't
implement multiple inheritance it implement multiple interfaces.

So, I keep reading and reading and reading to see how can I resolve my
problem with interfaces.

The conclusion is I'm writing to all of you because I couldn't find the way to resolve my problem.

If I can create multiples interfaces and I have to implement the methods on the derived class, then what's the big deal.

I know if I declare a class that inherit from one interface is useful
because for example

I can create an Interface called Shape, and 3 Classes called Circle,
Rectangle, and Line.

If on my interface I declare my method Draw(); and I implement on each
derived class then I could do the next.

IShape s = (IShape) AnyShapeObject;

s.draw();

I think is very useful and I used many times. But now the question is what
is the similitude between Multiple Inheritance and Multiple Interfaces???? I don't see too much

Why on Internet always speak for Multiple Inheritance and Multiple
Interfaces like they have a relation???

My Case:

I have many Windows Control and I'm inherit each one for create my own
Controls.

For example I want to add method called getVirtualSize( );

I create and interface

IVirtualSize

It contain

public getVirtualSize( );

So, on my derived class I MUST implement my method getVirtualSize and that's it.

Very nice!!!

Now the real question is, I create a lot of logic on my paint method; this
logic is exactly the same for all derived classes, why do I have to
implement this entire logic on each Control???

With multiple inheritances you just create a class
ExtendedControl Funcionality and Implement a method OnPaintEx, and really I
have a nice source code, because my class ExtendedControl Funcionality has
all the new extended functionality.

Then how can I do the same with interfaces????

I don't want to put my piece of code on every derived class, it is a mess
and very difficult to maintain, I want to centralize my source code and in
the same time I want to use many methods of the base classes, that means I
want to use all the protected methods that the controls offer to me because OnPaintEx needs those.

Really, here is only one example, the reality is that is a lot of source
code that I "should" implement on every Control, I don't want to do that.

Thanks, the answers will be really appreciated.

Gustavo.

Jul 21 '05 #2
But Control doesn't do anything that I want.

Basically, I want derive from Label, Panel, GroupBox, CheckBox, RadioButton,
etc. and add my extended funcionalities

The Class control doesn't have any funcionality.

On that case if I derived from Control I have to rewrite each windows
control from scratch wich is "not possible", doesn't make sense.

Thanks,
Gustavo.

"Sherif ElMetainy" <el************ *@wayout.net.NO SPAM> wrote in message
news:%2******** ********@TK2MSF TNGP11.phx.gbl. ..
Hello

Unlike C++, C# doesn't support multiple implementaion inheritance. But your problem can be solved by deriving the class ExtendedControl Funcionality from Control and deriving your class from ExtendedControl Funcionality.

Best regards,

Sherif
"Franco Gustavo" <gf*****@inunti us.com> wrote in message
news:#h******** ******@tk2msftn gp13.phx.gbl...
Hi,

Please help me to understand this, because I don't see what I'm missing.

I was reading a lot of examples on Internet that explain that C# doesn't
implement multiple inheritance it implement multiple interfaces.

So, I keep reading and reading and reading to see how can I resolve my
problem with interfaces.

The conclusion is I'm writing to all of you because I couldn't find the way
to resolve my problem.

If I can create multiples interfaces and I have to implement the methods

on
the derived class, then what's the big deal.

I know if I declare a class that inherit from one interface is useful
because for example

I can create an Interface called Shape, and 3 Classes called Circle,
Rectangle, and Line.

If on my interface I declare my method Draw(); and I implement on each
derived class then I could do the next.

IShape s = (IShape) AnyShapeObject;

s.draw();

I think is very useful and I used many times. But now the question is what is the similitude between Multiple Inheritance and Multiple Interfaces???? I
don't see too much

Why on Internet always speak for Multiple Inheritance and Multiple
Interfaces like they have a relation???

My Case:

I have many Windows Control and I'm inherit each one for create my own
Controls.

For example I want to add method called getVirtualSize( );

I create and interface

IVirtualSize

It contain

public getVirtualSize( );

So, on my derived class I MUST implement my method getVirtualSize and

that's
it.

Very nice!!!

Now the real question is, I create a lot of logic on my paint method;

this logic is exactly the same for all derived classes, why do I have to
implement this entire logic on each Control???

With multiple inheritances you just create a class
ExtendedControl Funcionality and Implement a method OnPaintEx, and really I have a nice source code, because my class ExtendedControl Funcionality has all the new extended functionality.

Then how can I do the same with interfaces????

I don't want to put my piece of code on every derived class, it is a mess and very difficult to maintain, I want to centralize my source code and in the same time I want to use many methods of the base classes, that means I want to use all the protected methods that the controls offer to me

because
OnPaintEx needs those.

Really, here is only one example, the reality is that is a lot of source
code that I "should" implement on every Control, I don't want to do that.
Thanks, the answers will be really appreciated.

Gustavo.


Jul 21 '05 #3
So just have a class that has private members of all those types. Inheriting
from all of the GUI classes does not make sense as they are all functionally
different.

Kieran

"Franco Gustavo" <gf*****@inunti us.com> wrote in message
news:uS******** ******@tk2msftn gp13.phx.gbl...
But Control doesn't do anything that I want.

Basically, I want derive from Label, Panel, GroupBox, CheckBox, RadioButton, etc. and add my extended funcionalities

The Class control doesn't have any funcionality.

On that case if I derived from Control I have to rewrite each windows
control from scratch wich is "not possible", doesn't make sense.

Thanks,
Gustavo.

"Sherif ElMetainy" <el************ *@wayout.net.NO SPAM> wrote in message
news:%2******** ********@TK2MSF TNGP11.phx.gbl. ..
Hello

Unlike C++, C# doesn't support multiple implementaion inheritance. But your
problem can be solved by deriving the class ExtendedControl Funcionality

from
Control and deriving your class from ExtendedControl Funcionality.

Best regards,

Sherif
"Franco Gustavo" <gf*****@inunti us.com> wrote in message
news:#h******** ******@tk2msftn gp13.phx.gbl...
Hi,

Please help me to understand this, because I don't see what I'm missing.
I was reading a lot of examples on Internet that explain that C# doesn't implement multiple inheritance it implement multiple interfaces.

So, I keep reading and reading and reading to see how can I resolve my
problem with interfaces.

The conclusion is I'm writing to all of you because I couldn't find the
way
to resolve my problem.

If I can create multiples interfaces and I have to implement the
methods
on
the derived class, then what's the big deal.

I know if I declare a class that inherit from one interface is useful
because for example

I can create an Interface called Shape, and 3 Classes called Circle,
Rectangle, and Line.

If on my interface I declare my method Draw(); and I implement on each
derived class then I could do the next.

IShape s = (IShape) AnyShapeObject;

s.draw();

I think is very useful and I used many times. But now the question is

what is the similitude between Multiple Inheritance and Multiple Interfaces????
I
don't see too much

Why on Internet always speak for Multiple Inheritance and Multiple
Interfaces like they have a relation???

My Case:

I have many Windows Control and I'm inherit each one for create my own
Controls.

For example I want to add method called getVirtualSize( );

I create and interface

IVirtualSize

It contain

public getVirtualSize( );

So, on my derived class I MUST implement my method getVirtualSize and

that's
it.

Very nice!!!

Now the real question is, I create a lot of logic on my paint method;

this logic is exactly the same for all derived classes, why do I have to
implement this entire logic on each Control???

With multiple inheritances you just create a class
ExtendedControl Funcionality and Implement a method OnPaintEx, and
really I have a nice source code, because my class ExtendedControl Funcionality has all the new extended functionality.

Then how can I do the same with interfaces????

I don't want to put my piece of code on every derived class, it is a mess and very difficult to maintain, I want to centralize my source code
and
in the same time I want to use many methods of the base classes, that
means
I want to use all the protected methods that the controls offer to me

because
OnPaintEx needs those.

Really, here is only one example, the reality is that is a lot of
source code that I "should" implement on every Control, I don't want to do

that.
Thanks, the answers will be really appreciated.

Gustavo.



Jul 21 '05 #4
Can you implement the logic into a function (if VB) or static method in a
class (VB or C#). Then for a control, implement your new interface and in
the method of the implemented interface just pass the call onto the function
or shared method?

"Franco Gustavo" <gf*****@inunti us.com> wrote in message
news:uS******** ******@tk2msftn gp13.phx.gbl...
But Control doesn't do anything that I want.

Basically, I want derive from Label, Panel, GroupBox, CheckBox, RadioButton, etc. and add my extended funcionalities

The Class control doesn't have any funcionality.

On that case if I derived from Control I have to rewrite each windows
control from scratch wich is "not possible", doesn't make sense.

Thanks,
Gustavo.

"Sherif ElMetainy" <el************ *@wayout.net.NO SPAM> wrote in message
news:%2******** ********@TK2MSF TNGP11.phx.gbl. ..
Hello

Unlike C++, C# doesn't support multiple implementaion inheritance. But your
problem can be solved by deriving the class ExtendedControl Funcionality

from
Control and deriving your class from ExtendedControl Funcionality.

Best regards,

Sherif
"Franco Gustavo" <gf*****@inunti us.com> wrote in message
news:#h******** ******@tk2msftn gp13.phx.gbl...
Hi,

Please help me to understand this, because I don't see what I'm missing.
I was reading a lot of examples on Internet that explain that C# doesn't implement multiple inheritance it implement multiple interfaces.

So, I keep reading and reading and reading to see how can I resolve my
problem with interfaces.

The conclusion is I'm writing to all of you because I couldn't find the
way
to resolve my problem.

If I can create multiples interfaces and I have to implement the
methods
on
the derived class, then what's the big deal.

I know if I declare a class that inherit from one interface is useful
because for example

I can create an Interface called Shape, and 3 Classes called Circle,
Rectangle, and Line.

If on my interface I declare my method Draw(); and I implement on each
derived class then I could do the next.

IShape s = (IShape) AnyShapeObject;

s.draw();

I think is very useful and I used many times. But now the question is

what is the similitude between Multiple Inheritance and Multiple Interfaces????
I
don't see too much

Why on Internet always speak for Multiple Inheritance and Multiple
Interfaces like they have a relation???

My Case:

I have many Windows Control and I'm inherit each one for create my own
Controls.

For example I want to add method called getVirtualSize( );

I create and interface

IVirtualSize

It contain

public getVirtualSize( );

So, on my derived class I MUST implement my method getVirtualSize and

that's
it.

Very nice!!!

Now the real question is, I create a lot of logic on my paint method;

this logic is exactly the same for all derived classes, why do I have to
implement this entire logic on each Control???

With multiple inheritances you just create a class
ExtendedControl Funcionality and Implement a method OnPaintEx, and
really I have a nice source code, because my class ExtendedControl Funcionality has all the new extended functionality.

Then how can I do the same with interfaces????

I don't want to put my piece of code on every derived class, it is a mess and very difficult to maintain, I want to centralize my source code
and
in the same time I want to use many methods of the base classes, that
means
I want to use all the protected methods that the controls offer to me

because
OnPaintEx needs those.

Really, here is only one example, the reality is that is a lot of
source code that I "should" implement on every Control, I don't want to do

that.
Thanks, the answers will be really appreciated.

Gustavo.



Jul 21 '05 #5
Hi Kieran,

|| So just have a class that has private members of all those types.

I'm not sure how that would work.

|| Inheriting from all of the GUI classes does not make sense as
|| they are all functionally different.

That's exactly the point - disparate objects but which require a <common
Capability>. Franco would have a FrancoLabel which would inherit from Label
and CapCtrlExtensio ns, and a FrancoPanel - Panel and CapCtrlExtensio ns, etc,
etc.

Using the interface approach means that the code has to be duplicated in
each of the ingheriting classes. Using multiple inheritance means bolting the
Capability on. Write once, re-use - it's what OOP shouts from the rooftops.

Regards,
Fergus
Jul 21 '05 #6
Yep, I tried that, but if you pass the control to a function on different
class (static or not static) then you can't get access to the protected
methods from the control.

Basically, My application is skinned, and I needed "true" transparent
controls.

Windows Problem

1) On Many controls you can't set Background like transparent,
(Color.Transpar ent)

2) Controls like GroupBox they capture the background wrong (if you have a
gradient background on the parent windows and the GroupBox is on the
position 50,50 then the background is capture from the Parent from the
position 0,0 which is wrong, because the GroupBox doesn't looks like
transparent in at all, has the gradient translated)

3) On the Controls that accept Color.Transpare nt, if you have a control on
Color.Transpare nt color and there is another control behind it (is not child
or parent, they have the same parent), Windows just capture the parent
Background which is wrong again, because you can't see the control that is
behind him.

So, what I did is inherit every control of windows, create my own BackBuffer
where I keep all my window status and changes, avoid call to
OnPaintBackgrou nd, and I take the process to draw the portion that windows
ask me to redraw with my own BackBuffer.

So, All this process is standard for every control and work really good,
then I can get "true" transparency and you don't see the difference on
performance.

But the code is ugly, because I have the same method implementation like 10
times!!!

Then the only that I need is consolidate my functionality on just one single
Class, Interface, Method or whatever I need.

On C++ if you do multi-inheritance then I can get what I'm looking for.

So, there is some way to emulate multi-inheritance on C#?????

I though interface was the answer. I see may be interface can't do too much
here, then some idea???

Thanks,

Gustavo.

P.S.: I think this is a very commun problem where you have to add
funcionality to thirdparty classes where you have to inherit from each one
of them and you have to share code for all of them.

"Anon" <An**@Anon.Anon > wrote in message
news:7t******** ************@rw crnsc51.ops.asp .att.net...
Can you implement the logic into a function (if VB) or static method in a
class (VB or C#). Then for a control, implement your new interface and in
the method of the implemented interface just pass the call onto the function or shared method?

"Franco Gustavo" <gf*****@inunti us.com> wrote in message
news:uS******** ******@tk2msftn gp13.phx.gbl...
But Control doesn't do anything that I want.

Basically, I want derive from Label, Panel, GroupBox, CheckBox,

RadioButton,
etc. and add my extended funcionalities

The Class control doesn't have any funcionality.

On that case if I derived from Control I have to rewrite each windows
control from scratch wich is "not possible", doesn't make sense.

Thanks,
Gustavo.

"Sherif ElMetainy" <el************ *@wayout.net.NO SPAM> wrote in message
news:%2******** ********@TK2MSF TNGP11.phx.gbl. ..
Hello

Unlike C++, C# doesn't support multiple implementaion inheritance. But

your
problem can be solved by deriving the class ExtendedControl Funcionality
from
Control and deriving your class from ExtendedControl Funcionality.

Best regards,

Sherif
"Franco Gustavo" <gf*****@inunti us.com> wrote in message
news:#h******** ******@tk2msftn gp13.phx.gbl...
> Hi,
>
>
>
> Please help me to understand this, because I don't see what I'm missing. >
>
>
> I was reading a lot of examples on Internet that explain that C# doesn't > implement multiple inheritance it implement multiple interfaces.
>
>
>
> So, I keep reading and reading and reading to see how can I resolve
my > problem with interfaces.
>
> The conclusion is I'm writing to all of you because I couldn't find the way
> to resolve my problem.
>
>
>
> If I can create multiples interfaces and I have to implement the methods on
> the derived class, then what's the big deal.
>
>
>
> I know if I declare a class that inherit from one interface is useful > because for example
>
> I can create an Interface called Shape, and 3 Classes called Circle,
> Rectangle, and Line.
>
> If on my interface I declare my method Draw(); and I implement on each > derived class then I could do the next.
>
>
>
> IShape s = (IShape) AnyShapeObject;
>
> s.draw();
>
>
>
> I think is very useful and I used many times. But now the question is what
> is the similitude between Multiple Inheritance and Multiple

Interfaces????
I
> don't see too much
>
>
>
> Why on Internet always speak for Multiple Inheritance and Multiple
> Interfaces like they have a relation???
>
>
>
> My Case:
>
>
>
> I have many Windows Control and I'm inherit each one for create my
own > Controls.
>
> For example I want to add method called getVirtualSize( );
>
>
>
> I create and interface
>
> IVirtualSize
>
>
>
> It contain
>
> public getVirtualSize( );
>
>
>
> So, on my derived class I MUST implement my method getVirtualSize and that's
> it.
>
>
>
> Very nice!!!
>
>
>
> Now the real question is, I create a lot of logic on my paint
method; this
> logic is exactly the same for all derived classes, why do I have to
> implement this entire logic on each Control???
>
>
>
> With multiple inheritances you just create a class
> ExtendedControl Funcionality and Implement a method OnPaintEx, and really
I
> have a nice source code, because my class

ExtendedControl Funcionality has
> all the new extended functionality.
>
>
>
> Then how can I do the same with interfaces????
>
>
>
> I don't want to put my piece of code on every derived class, it is a

mess
> and very difficult to maintain, I want to centralize my source code

and
in
> the same time I want to use many methods of the base classes, that

means
I
> want to use all the protected methods that the controls offer to me
because
> OnPaintEx needs those.
>
>
>
> Really, here is only one example, the reality is that is a lot of

source > code that I "should" implement on every Control, I don't want to do

that.
>
>
>
> Thanks, the answers will be really appreciated.
>
> Gustavo.
>
>
>
>



Jul 21 '05 #7
Hi Anon,

In this instance, the problem with off-loading the functionality to
another Class or Module and passing the target object in, is that it would not
have access to the target's protected and/or private members.

In any case, that is just one example that frustrates Franco - as a
general solution there would be many cases where it's a workable but messy.

In my main response to Franco, I mention a linked-list Capability that I
have had to implement using an Interface. This does actually work by sending
the object to a worker Class to traverse the list. The method works, but it
suffers because I have to make the actual link fields, Prev and Next, public,
as my worker needs access to them. There are also issues with casting and
type-safety. I can't prevent a programmer from inserting a Widget into a
linked list of Thingies. As I'm the programmer, that's not going to happen,
but I would prefer to have my carpets tacked down rather than watch my feet.

Regards,
Fergus
Jul 21 '05 #8
Hi Franco,

I'm entirely in agreement with you on this issue. Yes, Interfaces have
their (many) uses. But so does multiple inheritance.

My case in point - I create many objects with a totally different nature.
But I want them all to be capable of being in a linked list. I don't want to
have to create a separate class to manage these links. I don't want a
collection or an ArrayList. I simply want a Next and a Prev and a couple of
other trivial bits.

I'd like to define a small linked-list Capability class which I bolt-on to
my other classes through multiple inheritance.

But I can't. :-((

My only recourse is to define an interface, CapLinkable, and <copy> the
code (it's perfectly generic - needs not even a single character to be
changed) into <every> class that is to have this Capability. [I only have this
in C# because I can do it in about 15 lines - in VB it would probably be about
75!!]

But it's a maintenance nightmare, for I cannot even do it with <include>
files - it has to be a textual copy each time!!

There are many small pieces of functionality that would work for many,
many disparate objects without code change required - or in your case, minimal
changes.

Another example is the ability to Serialise. This could be done through
the inheritance of Capabilities. But no, it has to be done by setting an
Attribute and having the serialization done behind the scenes as a fiddle by
the Attribute in conjunction with a Formatter. Why can't an object serialise
<itself> by inheriting from a CapSerializable Capability?

It would be very useful if there were a mechanism for bolting these
Capabilities onto a class without having to reimplement the wheel each time.

Regards,
Fergus
Jul 21 '05 #9
Franco,
As Sherif stated, .NET does not have Multiple Implementation Inheritance,
one common method to get around this is to have an Implementation class
along with your interface. You would have an IShape interface along with a
ShapeImpl implementation class. Your Circle class would implement the IShape
interface, then contain a ShapeImpl object as a field, the IShape method
would delegate to the ShapeImple class. NOTE, Circle would NOT inherit from
ShapeImpl.

Have you considered using creating an Extender Provider class instead?

An Extender Provider is a class (can be either a Component or a Control)
that implements the System.Componen tModel.IExtende rProvider interface
allowing you to add new properties to controls. Along with these properties
you can attach event handlers to the targeted controls enabling you at add
functionality.

http://msdn.microsoft.com/library/de...derobjects.asp

http://msdn.microsoft.com/library/de...erprovider.asp

http://msdn.microsoft.com/library/de...idersample.asp

Hope this helps
Jay
"Franco Gustavo" <gf*****@inunti us.com> wrote in message
news:uS******** ******@tk2msftn gp13.phx.gbl...
But Control doesn't do anything that I want.

Basically, I want derive from Label, Panel, GroupBox, CheckBox, RadioButton, etc. and add my extended funcionalities

The Class control doesn't have any funcionality.

On that case if I derived from Control I have to rewrite each windows
control from scratch wich is "not possible", doesn't make sense.

Thanks,
Gustavo.

"Sherif ElMetainy" <el************ *@wayout.net.NO SPAM> wrote in message
news:%2******** ********@TK2MSF TNGP11.phx.gbl. ..
Hello

Unlike C++, C# doesn't support multiple implementaion inheritance. But your
problem can be solved by deriving the class ExtendedControl Funcionality

from
Control and deriving your class from ExtendedControl Funcionality.

Best regards,

Sherif
"Franco Gustavo" <gf*****@inunti us.com> wrote in message
news:#h******** ******@tk2msftn gp13.phx.gbl...
Hi,

Please help me to understand this, because I don't see what I'm missing.
I was reading a lot of examples on Internet that explain that C# doesn't implement multiple inheritance it implement multiple interfaces.

So, I keep reading and reading and reading to see how can I resolve my
problem with interfaces.

The conclusion is I'm writing to all of you because I couldn't find the
way
to resolve my problem.

If I can create multiples interfaces and I have to implement the
methods
on
the derived class, then what's the big deal.

I know if I declare a class that inherit from one interface is useful
because for example

I can create an Interface called Shape, and 3 Classes called Circle,
Rectangle, and Line.

If on my interface I declare my method Draw(); and I implement on each
derived class then I could do the next.

IShape s = (IShape) AnyShapeObject;

s.draw();

I think is very useful and I used many times. But now the question is

what is the similitude between Multiple Inheritance and Multiple Interfaces????
I
don't see too much

Why on Internet always speak for Multiple Inheritance and Multiple
Interfaces like they have a relation???

My Case:

I have many Windows Control and I'm inherit each one for create my own
Controls.

For example I want to add method called getVirtualSize( );

I create and interface

IVirtualSize

It contain

public getVirtualSize( );

So, on my derived class I MUST implement my method getVirtualSize and

that's
it.

Very nice!!!

Now the real question is, I create a lot of logic on my paint method;

this logic is exactly the same for all derived classes, why do I have to
implement this entire logic on each Control???

With multiple inheritances you just create a class
ExtendedControl Funcionality and Implement a method OnPaintEx, and
really I have a nice source code, because my class ExtendedControl Funcionality has all the new extended functionality.

Then how can I do the same with interfaces????

I don't want to put my piece of code on every derived class, it is a mess and very difficult to maintain, I want to centralize my source code
and
in the same time I want to use many methods of the base classes, that
means
I want to use all the protected methods that the controls offer to me

because
OnPaintEx needs those.

Really, here is only one example, the reality is that is a lot of
source code that I "should" implement on every Control, I don't want to do

that.
Thanks, the answers will be really appreciated.

Gustavo.



Jul 21 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

42
1458
by: Franco Gustavo | last post by:
Hi, Please help me to understand this, because I don't see what I'm missing. I was reading a lot of examples on Internet that explain that C# doesn't implement multiple inheritance it implement multiple interfaces.
7
1594
by: Ant | last post by:
Hi, I’m wondering what practical use is there for creating interfaces. I can fully appreciate creating an abstract class for the purpose of inheriting, but why an interface? Is it just to promote polymorphism while keeping implementation unique? I dunno; I know I must be missing something big here. Any clues would, as always, be greatly appreciated. Thank you Ant
27
3869
by: jm | last post by:
I am having trouble understanding the purposes of an interface, even though the concept of interfaces is around me all the time (user interface, for example). I'm just not understanding software interfaces. Like anything else, it appears Interfaces are by design something that requires documentation. I know this may be obvious, but if I have a class A and I say, well, class A implements IMyInterface. The fact that it implements...
0
11061
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
10787
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10390
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7932
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
7098
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5762
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5960
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
4578
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
3203
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.