c# - Losing sub classes' properties in a collection of inherited classes -


i trying implement relatively easy class hierarchy. however, seems of knowledge lost since school.. problem subclasses' properties lost on retrieval.

the hierarchy follows:

  • an abstract class general properties subclasses
  • subclasses specific properties. inherits abstract class
  • a collection of subclasses

collection

public class activefilters {     public list<activefilter> filters { get; set; }     enum filtertypes      {          daterange = 1,         checkbox = 2,         textbox = 3,         radiobuttons = 4     };      public activefilters()     {         filters = new list<activefilter>();          //required filters on start         filters.add(             new filterdaterange(                 "/statistikstart.aspx",                 (int)filtertypes.daterange,                 "paymentdate",                 new datetime(1800, 1, 1),                 datetime.now.adddays(7)             )         );         filters.add(             new filterdaterange(                 "/statistikgiro.aspx",                 (int)filtertypes.daterange,                 "paymentdate",                 new datetime(1800, 1, 1),                 datetime.now             )         );     }      public activefilter getactivefilter(string source, string name)     {         try         {             return filters.firstordefault(x => x.source == source && x.name == name) activefilter;         }         catch         {             //filter not in collection             return null;         }     } } 

abstract class

public abstract class activefilter {     public string source { get; set; }     public int type { get; set; }     public string name { get; set; } } 

a subclass

public class filterdaterange : activefilter {     public datetime fromdate { get; set; }     public datetime todate { get; set; }      public filterdaterange(string source, int type, string name, datetime fromdate, datetime todate)     {         base.source = source;         base.type = type;         base.name = name;         this.fromdate = fromdate;         this.todate = todate;     } } 

when try retrieve 1 of created filters collection constructor, no dates saved subclass. information saved properties of abstract class:

filterdaterange test = ((filterdaterange)((activefilters)session["activefilters"]).getactivefilter("/statistikstart.aspx", "paymentdate")); 

is problem return activefilter getactivefilter() instead of sub class? if so, how can rewrite getactivefilter() return filters when filters can of different subclasses?

you have typos:

public filterdaterange(string source, int type, string name, datetime fromdate, datetime todate) {     base.source = source;     base.type = type;     base.name = name;     this.fromdate = fromdate; // set fromdate fromdate (the property)      this.todate = todate; } 

should be

public filterdaterange(string source, int type, string name, datetime fromdate, datetime todate) {     base.source = source;     base.type = type;     base.name = name;     this.fromdate = fromdate; // set fromdate fromdate (the parameter)     this.todate = todate; } 

Comments

Popular posts from this blog

How to mention the localhost in android -

php - Calling a template part from a post -

c# - String.format() DateTime With Arabic culture -