Re: Child objects inheriting property values

Brady Kelly <[email protected]>
Newsgroups gmane.comp.windows.devel.dotnet.clr
Message-ID <[email protected]>
Thanks Peter, I think I will go with this.  Although my delimiter will be a
string, and thus a reference type, which had previously introduced doubts in
my musings, as I was paranoid about the Record delimiter being changed on
the parent, introducing possibly unexpected side effects in the child.
However,, I think it will suffice to explicitly set the Column delimiter to
a clone of the parent, if I want an immutable delimiter for some odd reason.

> -----Original Message-----
> From: Discussion of development on the .NET platform using any managed
> language [mailto:[email protected]] On Behalf Of Peter
> Obiefuna
> Sent: 22 November 2007 05:40 AM
> To: [email protected]
> Subject: Re: [DOTNET-CLR] Child objects inheriting property values
>
> Using inheritance is semantically wrong since a Column 'IS A' record is
> not
> correct. Moreover, assigning field values of a base class to its
> subclass in
> a constructor feels awkward. A good compiler should disallow it.
> Again, the class order in your question appears reversed to me (I
> expect a
> column collection to exist before a record does) but I'll just answer
> your
> question narrowly. Here's my solution to that problem.
> =======================================
>
> class Column{
>
>     private char delimiter;
>     public Column(){
>         // first, set parent record;
>         // then ...
>         this.delimiter = ParentRecord.Delimiter;
>     }
>     public Record ParentRecord { get; set; }
>     public char Delimiter { get; set; }
> }
>
> class Record{
>     private char delimiter = '^';
>     public Record(){
>
>     }
>     private Column[] columns;
>     public char Delimiter {get; set;}
>
> }
>
> --------------------------------------------------
> From: "Adrian Martin" <[email protected]>
> Sent: Tuesday, November 20, 2007 6:28 AM
> To: <[email protected]>
> Subject: Re: [DOTNET-CLR] Child objects inheriting property values
>
> >        class Column : Record
> >        {
> >                public Column()
> >                {
> >                        this.Delimeter = base.Delimeter;
> >                }
> >        }
> >
> >
> >
> >
> >
> >
> >
> > -----Original Message-----
> > From: Discussion of development on the .NET platform using any
> managed
> > language [mailto:[email protected]] On Behalf Of Brady
> > Kelly
> > Sent: 20-November-2007 10:10
> > To: [email protected]
> > Subject: Child objects inheriting property values
> >
> > I have a hierarchy of objects that share some attributes, e.g. both
> my
> > parent Record and Column objects have a columnDelimiter property.  I
> > want
> > this property on the Column object to default to the same property on
> > the
> > Record object, until specified on the Column object.  What is the
> best
> > way
> > to go about this?  I could give each Column a reference to the Record
> it
> > belongs to, but this seems not quite right to me.  My other option is
> to
> > have the Record act as a ColumnFactory, setting the columnDelimiter
> > value on
> > each Column it creates, until a set accessor on Column optionally
> > overrides
> > that default value.
> >
> >
> > ===================================
> > This list is hosted by DevelopMentor(r)  http://www.develop.com
> >
> > View archives and manage your subscription(s) at
> > http://discuss.develop.com
> >
> >
> > Johnston Press plc      Registered in Scotland no. SC015382
> > Registered Office: 53 Manor Place, Edinburgh, EH3 7EG
> >
> > Opinions expressed in this email are those of the writer and not the
> > company.  E-mail traffic is monitored within Johnston Press and
> messages
> > may be viewed.  This e-mail and any files with it are solely for the
> use
> > of the addressee(s).  If you are not the intended recipient, you have
> > received this e-mail in error.  Please delete it or return it to the
> > sender or notify us by email at [email protected]
> >
> > ===================================
> > This list is hosted by DevelopMentorR  http://www.develop.com
> >
> > View archives and manage your subscription(s) at
> > http://discuss.develop.com
> >
>
> ===================================
> This list is hosted by DevelopMentorR  http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com

===================================
This list is hosted by DevelopMentor®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.