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