c# - Generic class with two generic types -
i have generic class "selectable items" useful lists. want selectable item include list of other selectable items. here code:
public interface iselectableitem<t> { bool isselected { get; set; } bool isvisible { get; set; } string displayname { get; set; } t value { get; set; } observablecollection<iselectableitem<t>> subitems { get; } }
for subitems
collection of same type selectableitem itself.
question is: how have declare interface subitems
iselectableitem
, of type t2
, not t
?
add sec generic type, t2
, type definition:
public interface iselectableitem<t, t2> { t value { get; set; } observablecollection<iselectableitem<t2>> subitems { get; } }
plan b deviate between sub items , master items adding sec interface layer:
public interface iselectableitem<t, t2> : iselectableitem<t> { observablecollection<iselectableitem<t2>> subitems { get; } } public interface iselectableitem<t> { bool isselected { get; set; } bool isvisible { get; set; } string displayname { get; set; } t value { get; set; } }
this work example:
public class : iselectableitem<string> { ... } public class b : iselectableitem<string, string> { ... } b b = new b(); b.subitems.add(new a());
or even:
b.subitems.add(new b());
c# .net generics
No comments:
Post a Comment