Re: Child objects inheriting property values
"Ryan Rinaldi (TT)" <[email protected]>
| Newsgroups | gmane.comp.windows.devel.dotnet.clr |
|---|---|
| Message-ID | <8300EE53FE0B104391E0983F3AA8FA1F035489EA@chiex01> |
"Moreover, assigning field values of a base class to its subclass in a constructor feels awkward. A good compiler should disallow it." If any .NET compiler disallowed it ASP.NET wouldn't work! :) At least the older ASP.NET Web Application code-behind model. In the code behind you declare all of the controls while the .aspx page instantiates them. Quite awkward and convoluted resulting in a page that can compile but if you forget to add the control to the page it crashes at runtime. -----Original Message----- From: Discussion of development on the .NET platform using any managed language [mailto:[email protected]] On Behalf Of Peter Obiefuna Sent: Wednesday, November 21, 2007 9:40 PM 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 DevelopMentor(r) http://www.develop.com > > View archives and manage your subscription(s) at > http://discuss.develop.com > =================================== This list is hosted by DevelopMentor(r) 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