Re: REPOST:Hiding base class property from derived class instance
From: Mike Newton (MNewton_at_discussions.microsoft.com)
Date: 12/14/04
- Next message: Bret Pehrson: "Re: DateTime Hell"
- Previous message: Franck Diastein: "DateTime Hell"
- In reply to: Baski: "Re: REPOST:Hiding base class property from derived class instance"
- Next in thread: Rachel Suddeth: "Re: REPOST:Hiding base class property from derived class instance"
- Messages sorted by: [ date ] [ thread ]
Date: Tue, 14 Dec 2004 14:31:49 -0600
It sounds like you want to use an interface instead of inheritance.
If you have public properties in a base class, you won't be able to mask
them in inherited classes. The reason for this is simple.
We'll say that you have object X, we'll call it a ListBox, but you need
to use it with object Y, which only takes WebControls. If X hid members
of the WebControls class, it would no longer be considered a WebControl,
and wouldn't work with object Y.
An interface of common properties will be easier for you to control.
Let those properties be the external items that the dev's work with, but
keep everything else internal.
Essentially, you can't rename properties in child classes, because then
those classes would no longer be children.
Baski wrote:
> If any properties is renamed in derived class I want to mask that
> propoerty from developer derived class instance(just like Explicit interface
> implementation hide).
>
>
> "Rachel Suddeth" <rachel@bldhound.com> wrote in message
> news:OpRguYh4EHA.4008@TK2MSFTNGP15.phx.gbl...
>
>>Ah, now I understand.
>>
>>When you rename the properties, do you need the originals to be unusable
>>by the user/developer, or do you just want them not to show up in the
>>"properties" window of the designer?
>>
>>-Rachel
>>
>>"Baski" <baski@aldensys.com> wrote in message
>>news:%23nYG21f4EHA.2156@TK2MSFTNGP10.phx.gbl...
>>
>>>Rachel,
>>>
>>>I have base framework , which will be used for multiple clients , each
>>>client will call the properties in different names. Base class will not
>>>be
>>>used by the developer any where. We are using the inheritance to get most
>>>functionality(reusability) from base class and easily adopt the new
>>>client
>>>with simple name customization.
>>>
>>>If the base class properties is not renamed in the derived class , I want
>>>the developer to see as it's defined in base class from derived class
>>>instance variable.
>>>
>>>If you need more explanation, plese feel free to email me.
>>>
>>>Thanks
>>>Baski
>>>
>>>
>>>
>>>"Rachel Suddeth" <rachel@bldhound.com> wrote in message
>>>news:O%23zh0yf4EHA.3368@TK2MSFTNGP10.phx.gbl...
>>>
>>>>Please give a brief example that illustrates what you really want to do.
>>>>In the example you give, there is no reason to hide the base property
>>>>with another, since it is exactly the same as the derived one, and also
>>>>nothing the developer could possibly want to use in the base that is not
>>>>exposed by the derived property.
>>>>
>>>>If you can give us an understanding of what you really want to do, we
>>>>very likely can suggest a solution for your problem.
>>>>
>>>>-Rachel
>>>>
>>>>"Baski" <baski@aldensys.com> wrote in message
>>>>news:eIOA%23pf4EHA.3840@tk2msftngp13.phx.gbl...
>>>>
>>>>>Base class:
>>>>>
>>>>>
>>>>>class AssetBase
>>>>>{
>>>>> string _clli;
>>>>>
>>>>> public string CLLI
>>>>> {
>>>>> get
>>>>> {
>>>>> return _clli;
>>>>> }
>>>>> set
>>>>> {
>>>>> _clli = value
>>>>> }
>>>>> }
>>>>>
>>>>>
>>>>>}
>>>>>
>>>>>
>>>>>In Derived Class I want to give different name to the base class
>>>>>property
>>>>>and internally refer the base class property like below
>>>>>
>>>>>
>>>>>class Asset: BaseAsset
>>>>>{
>>>>> public string Location
>>>>> {
>>>>> get
>>>>> {
>>>>> base.CLLI;
>>>>> }
>>>>> set
>>>>> {
>>>>> base.CLLI = value;
>>>>> }
>>>>> }
>>>>>}
>>>>>
>>>>>
>>>>>
>>>>>Now , when the developer use this dll in their project and create Asset
>>>>>instance I want to hide the AssetBase Property CLLI , all i want to see
>>>>>them
>>>>>is Location. I can do this by making base class properties to protected
>>>>>,
>>>>>but I want some of the property to be exposed to the developer
>>>>>as it's defined in base class. How can I do that ?
>>>>>
>>>>>
>>>>>Thanks
>>>>>baski
>>>>>
>>>>
>>>>
>>>
>>
>
>
- Next message: Bret Pehrson: "Re: DateTime Hell"
- Previous message: Franck Diastein: "DateTime Hell"
- In reply to: Baski: "Re: REPOST:Hiding base class property from derived class instance"
- Next in thread: Rachel Suddeth: "Re: REPOST:Hiding base class property from derived class instance"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|