.net - Creating a generic list of a generic type -
i trying create list of generic type in vb.net 2.0 framework. generic type definition:
---------- public class genericparammap(of t) public sub new(byval pparamname string, byval ppropvalue t) mparamname = pparamname mpropvalue = ppropvalue end sub public property paramname() string return mparamname end set(byval value string) mparamname = value end set end property private mparamname string public property propvalue() t return mpropvalue end set(byval value t) mpropvalue = value end set end property private mpropvalue t end class ----------
and here method use list of genericparammap passed in parameter:
public sub populateparammap(byval pmap list(of genericparammap(of t)) pmap.add(new genericparammap(of integer)("@region_id", regionid)) pmap.add(new genericparammap(of string)("@bus_addr1", busaddress1)) pmap.add(new genericparammap(of boolean)("@active_flag", activeflag)) end sub ----------
the compiler not allow "t" in method's parameter because it's not defined, i'm not sure how or define it. thought okay have generic method definition. have ideas? thanks
your code doesn’t work because different instances of genericparammap
don’t share common base (except object
). is, thing(of integer)
entirely unrelated thing(of string)
far vb concerned.
one way solve have class implement interface (or extend base class) , declare list list(of thatinterface)
. note lose generic type information way, there fundamentally no way around – can’t integers , strings alike (except far common base class goes, object
), , cannot treat thing(of integer)
, thing(of string)
alike.
Comments
Post a Comment